链栈的基本操作

Posted suqf

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了链栈的基本操作相关的知识,希望对你有一定的参考价值。

 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 } 

 

以上是关于链栈的基本操作的主要内容,如果未能解决你的问题,请参考以下文章

数据结构学习笔记——链式存储结构实现栈

链栈的基本操作

链栈存储结构和基本运算

数据结构栈的链式存储结构

链栈的基本接口实现

链栈算法