#include<stdio.h>
#include<stdlib.h>
//Khai báo cấu trúc 1 nút
struct node
{
int infor;
struct node *link;
}*T=NULL; //Khởi tạo T
// Khai báo hàm
void Push(int X);
int Pop();
int Empty();
// ===Chuong Trinh Chinh===
int main()
{
// Bổ sung vào ngăn xếp
Push(1);
Push(2);
Push(3);
Push(4);
Push(5);
//Hiện thị thông tin của ngăn xếp
printf("Cac so trong danh sach la: \n");
while(!Empty())
printf("%d\t\t",Pop());
return 0;
}
// ==Định nghĩa hàm
// Hàm bổ sung một phần tử vào ngăn xếp
void Push(int X)
{
struct node *N;
// Cấp phát bộ nhớ
N=(struct node*)malloc(sizeof(struct node));
N->infor=X;
N->link=NULL;
// Bổ sung
N->link=T;
T=N;
}
//Hàm loại bỏ một 1 nút khỏi ngăn xếp và trả về thông tin ở nút đó
int Pop()
{
int tg;
struct node *P;
if(T==NULL){
printf("Ngan xep rong! ");
return 0;
}
tg=T->infor;
P=T;
T=T->link;
free(P); //Thu hồi bộ nhớ ,hủy nút
return tg;
}
//Hàm kiểm tra danh sách rỗng
int Empty()
{
if(T==NULL)
return 1;
return 0;
}