1 / 40
文档名称:

数据结构第3章栈和队列.ppt

格式:ppt   页数:40页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

数据结构第3章栈和队列.ppt

上传人:df158687 2015/6/2 文件大小:0 KB

下载得到文件列表

数据结构第3章栈和队列.ppt

文档介绍

文档介绍:第3章栈和队列




---表达式求值
第3章栈和队列




第三章栈和队列

:
栈(Stack) 是限定仅在表的一端进行插入或删除操作的线性表。
P44
P45
栈的存储结构
有两种存储结构:
顺序栈(常用);
链栈
1、顺序栈
顺序栈的类型定义:
//-- -- --栈的顺序存储表示-- -- -- #define STACK_NINT_SIZE 100;//存储空间初始分配量 #define STACKINCREMENT 10; //存储空间分配增量 typedef struct{     SElemType *base; //在栈构造之前和销毁之后,base的值为NULL     SElemType *top; //栈顶指针     int stacksize; //当前已分配的存储空间,以元素为单位 }SqStack
顺序栈的结构举例
//-- -- --基本操作的函数原型说明-- -- -- Status InitStack(SqStack &S);     //构造一个空栈S Status GetTop(SqStack S,SElemType &e);     //若栈不空,则用e返回S的栈顶元素,并返回OK;否则返回ERROR Status Push(SqStack &S,SElemType e);     //插入元素e为新的栈顶元素 Status Pop(SqStack &S,SElemType &e);     //若栈不空,则删除S的栈顶元素,用e返回其值,并返回OK;否则返回ERROR
2、链栈
链栈的类型定义:
typedef struct LNode{//结点类型     ElemType data;     struct LNode *next; }Lnode,*Linkstack; Linkstack S;