数据结构 顺序栈的类型定义如下: Define sTAcK INIT SIZE 100 define stacKincrement 10 typedef struct SElemType *base SElemType *top; int stacksizej SSqstack;
数据结构 tjm
数据结构 当栈满时再做进栈运算必定产生空间溢出,简 称“上溢”P当栈空时再做退栈运算也将产生溢 出,简称“下溢”。溢出是一种出错状态,应 该设法避免 栈的几个常用的基本操作的实现: 1、栈的初始化 Initstack操作(P47) 2、进栈Push操作(P47) 3、出栈Pop操作(P47) 4、取栈顶元素 GetTop操作(P47)
数据结构 tjm
数据结构 链栈 栈的链式存储结构称为链栈,它是操作受限的 单链表,其插入和删除操作仅限制在表头位置 上进行。链栈通常用不带头结点的单链表来实 现。栈顶指针就是链表的头指针。 链栈的类型说明如下: typedef struct sNode SElemType datai struct snode *next SSNode LinkStack;
数据结构 tjm
数据结构 1、进栈操作的实现: 栈底 void Push_LS(LinkStack &S, SElem Type e) p=(LinkStack)malloc(sizeof (SNode))i p->data=ej p->next=S S=P;
数据结构 tjm …... ^ 栈底 S S e p
数据结构 2、退栈操作的实现: 栈底 Status Pop_Ls(LinkStack &S, SElemType &e) if(s==NULL) return ERROR; e=s->data: P=Si S=s→>next free(p)i }
数据结构 tjm S …... ^ 栈底 S p