链栈的定义:栈的链式存储结构
栈顶:允许插入和删除的一端称为栈顶(top)
栈底:栈顶的另外一端称为栈底(bottom)
空栈:不含任何元素的栈称为空栈
链栈的部分特点:
1)不会存在满栈的情况
2)链栈不需要头结点
3)空栈的时候,top=NULL
4)后进先出的线性表 LIFO结构
5)进栈:栈的插入操作,也叫压栈,入栈
6)出栈:栈的删除操作,也叫弹栈

讯享网
trpedef struct StackNode { int data; struct StackNode *next; }Node,*Nodeptr; typedef struct { Nodeptr top; int count; }LinkStack;
讯享网
其中,top是指向第一个节点的位置,count表示链栈中的元素数目。

讯享网InitStack(LinkStack *S) { S->top=(Nodeptr)malloc(sizeof(Node)); if(S->top == NULL) return 0; else { S->top=NULL; S->count=0; return 1; } }
链栈的置空:
int ClearStack(LinkStack *S) { Nodeptr p,q; p=S->top; while(p != NULL) { q=p; p=p->next; free(q); } S->count=0; return 1; }
入栈操作:
讯享网int push(LinkStack *S,int e) { Nodeptr s; s=(Nodeptr)malloc(sizeof(Node)); s->data=e; s->next=S->top; S->top=s; S->count++; return 1; }
出栈操作:
int pop(LinkStack *S,int *e) { Nodeptr p; if(S->count == 0) return 0; else { *e=S->top->data; p=S->top; S->top=S->top->next; free(p); S->count--; return 1; } }
以上.
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/55767.html