栈的链式存储结构

来源:互联网 发布:川崎机器人编程手册 编辑:程序博客网 时间:2024/05/22 12:52
栈的链式存储结构

栈主要是顺序存储结构,但是栈也有链式存储结构,栈的链式存储结构我们只需要了解下即可。

栈的链式存储结构中,栈顶指针和单链表的头指针合二为一。栈的链式存储结构中,栈顶是单链表的表头,栈底是表尾。

栈的链式存储结构如下:
typedef struct StackNode{ElemType data;struct StackNode *next;}StackNode,*LinkstackPointer;typedef struct {LinkstackPointer top;//top指针int count;//栈元素计数器}LinkStack;

下面分别讲述基于链式存储结构的进栈和出栈操作。

Status Push(LinkStack *s,ElemType e){LinkstackPointer p = (StackNode*)malloc(sizeof(StackNode));p->data = e;p->next = s->top;s->top = p;s->count++;return 1;}

出栈的代码如下:
Status Pob(LinkStack *s,ElemType *e){LinkstackPointer p;if(StackEmpty(*s))return 0;*e = s->top->data;p = s->top;s->top = s->top->next;free(p);s->count--;return 1;}








0 0