Tổng hợp các bài tập stack sử dụng danh sách liên kết

Bài tập: Viết chương trình đổi từ số thập phân sang số nhị phân sử dụng stack.

#include <stdio.h>
typedef int DataType;
//Khai bao cau truc stack
typedef struct node{
DataType info;
struct node* next;
}Node;
typedef Node* NODEPTR;
typedef NODEPTR STACK;
STACK s;
//Khoi tao Stack
void Init(STACK &s){
s = NULL; //NULL viet hoa het
}
//Kiem tra Stack rong
int IsEmpty(STACK s){
return (s==NULL);
}
//Them mot phan tu vao Stack;
int Push(STACK &s, DataType x){
NODEPTR p = new Node;
if(p==NULL) return 0;
p->info = x;
p->next = s;
s = p;
return 1;
}
//Tac vu lay ra mot phan tu
int Pop(STACK &s, DataType &x){
if(IsEmpty(s)) return 0;
NODEPTR p = s;
x = p->info;
s = s->next;
delete p;
return 1;
}
void Convert(int n, STACK &s){
int sodu;
while(n != 0){
sodu = n%2;
Push(s,sodu);
n=n/2;
}
}
void Output(STACK s){
int x;
while(IsEmpty(s) == false){
Pop(s,x);
printf(“%d”,x);
}
}
int main(){
STACK s;
int n;
Init(s);
printf(“Nhap so o he thap phan: “);
scanf(“%d”,&n);
Convert(n,s);
Output(s);
return 0;
}