Saturday, May 14, 2016

Chương trình chuyển một số nguyên thành xâu nhị phân sử dụng danh sách liên kết đơn (ngăn xếp)

//Họ Tên: Trần Văn Linh
     //MaSV:581597
     //Lớp:K58QLTT

-------------------------------------------------------------------------------------------------------------------------
xaunhiphan.c
#include<stdio.h>
#include<stdlib.h>

    //khai bao cau truc
typedef struct node node;
struct node
{
int infor;
node *link;
} *T=NULL;

//Khai bao ham
void push(int x);//Hàm bổ sung 
int pop();//Hàm xóa một nút
int empty();//Hàm kiểm tra danh sách rỗng

//==Chuong trinh chinh==
int main()
{
int n,thuong;
printf("Nhap so nguyen can chuyen sang dang nhi phan:");
do
{
scanf("%d",&n);
if(n<0)
printf("\nSo nguyen nhap phai duong,nhap lai: ");
}while(n<0);
thuong=n;
while(thuong)
{
push(thuong%2);
thuong/=2;
}
printf("\n%d chuyen sang dang nhi phan la:",n);
while(!empty())
printf("%d",pop());
return 0;
}
//==Dinh nghia ham==
void push(int x)
{
node *N;
N=(node*)malloc(sizeof(node));
N->infor=x;
N->link=NULL;
//bo sung vao dinh ngan xep
N->link=T;
T=N;
}
//-------------
int pop()
{
int tg;
node *P;
if(T==NULL)
{
printf("Danh sach rong.!");
return 0;
}
P=T;
tg=T->infor;
T=T->link;
free(P);
return tg;
}
//-------------
int empty()
{
if(T==NULL)
return 1;
return 0;
}

0 comments:

Post a Comment