链栈的基本操作

 1 //链栈是运算受限的单链表,只能在链表头部进行操作 
 2 typedef struct StackNode{
 3     SElemType data;
 4     struct StackNode *next;
 5 }StackNode,*LinkStack;
 6 LinkStack S;  
 7 //链栈的初始化
 8 void InitStack(LinkStack &S){
 9     S=NULL;
10     return OK;
11 } 
12 //判断链栈是否为空
13 Status StackEmpty(LinkStack S){
14     if(S==NULL)    return TURE;
15     else return FALSE;
16 }
17 //链栈的入栈
18 Status Push(LinkStack &S,SElemType e){
19     p=new StackNode;  //生成新节点 
20     p->data=e;    //将新节点的数据域为e 
21     p->next=S;    //将新节点插入栈顶 
22     S=p;    //修改栈顶指针 
23     return OK;
24 } 
25 //链栈的出栈
26 Status Pop(LinkStatus &S,SElemType &e){
27     if(S==NULL) return ERROR;
28     e=S->data;
29     p=S;
30     S=S->next;
31     free(p);
32     return OK;
33 } 
34 //取栈顶元素
35 SElemTtype GetTop(LinkStack S){
36     if(S!=NULL)
37         return S->data;
38 } 

 

posted on 2018-10-17 21:21 QingFD 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/suqf/p/9807186.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值