链栈的基本操作!
2018-01-22 21:09
543 查看
链栈:栈的链式存储结构
链栈的部分特点:
1)不会存在满栈的情况
2)链栈不需要头结点
3)空栈的时候,top=NULL;
链栈的基础结构:
其中,top是指向第一个节点的位置,count表示链栈中的元素数目。
接下来是链栈的一些基础操作:
创建链栈:
链栈的置空:
入栈操作:
出栈操作:
以上.
链栈的部分特点:
1)不会存在满栈的情况
2)链栈不需要头结点
3)空栈的时候,top=NULL;
链栈的基础结构:
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; } }
以上.