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