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 }