1 #include <stdio.h> 2 #include <stdlib.h> 3 4 typedef struct LinkNode{ 5 int data; //数据域 6 struct LNode *next; //指针域 7 }Linknode,*LiStack; //栈类型的定义 8 9 //初始化 10 void InitStack(LiStack &S){ 11 12 S=NULL; 13 14 } 15 16 //判断链栈是否为空 17 bool EmptyStack(LiStack S){ 18 if(S == NULL) 19 return true; 20 else 21 return false; 22 } 23 24 //新元素入栈 25 bool Push(LiStack &S,int x){ 26 27 LinkNode *p = (LinkNode*)malloc(sizeof(LinkNode)); 28 p.data=x; 29 p.next=S.next; 30 S.next=p; 31 return true; 32 } 33 34 //出栈 35 bool Pop(LiStack &L,int &e){ 36 if(L.next==NULL) 37 return false; 38 39 LinkNode *p=L.next; 40 e=p.data; 41 L.next=p.next;//成链 42 free(p); 43 return true; 44 } 45 46 //获取栈顶元素 47 bool GetTop(LiStack L,int &x){ 48 if(L.next==NULL) 49 return false; 50 51 LinkNode *p=L.next; 52 x=p.data; 53 return true; 54 } 55 56 57 58 int main(){ 59 return 0; 60 }