链栈的基本操作
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 }
以上是关于链栈的基本操作的主要内容,如果未能解决你的问题,请参考以下文章