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 }