1 / 57
文档名称:

栈和队列.ppt

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

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

分享

预览

栈和队列.ppt

上传人:jiqingyong345 2018/2/3 文件大小:1.83 MB

下载得到文件列表

栈和队列.ppt

相关文档

文档介绍

文档介绍:数据结构 第三章 栈和队列
主讲人:包晖
本章内容

栈的应用举例
栈类型的实现
3-3

栈的定义
ADT Stack {
数据对象:
D={ ai | ai ∈ElemSet, i=1,2,...,n, n≥0 }
数据关系:
R1={ <ai-1, ai >| ai-1, ai∈D, i=2,...,n }
约定an 端为栈顶,a1 端为栈底。
基本操作:
} ADT Stack
3-4

栈的定义
栈(stack):是限定仅在表尾进行插入和删除操作的线性表。又称为后进先出(last in first out)的线性表(简称LIFO结构)。
栈顶(top):栈表尾端。
栈底(bottom):栈表头端。
例:假设栈 S=(a1,a2,…,an) ,则 a1 称
为栈底元素,an 为栈顶元素。栈中元素按
a1,a2,…,an 的次序进栈,退栈的第一个元
素应为栈顶元素。如右图所示。
出栈进栈

栈顶 an
.
.
.

a2
栈底 a1

栈的示意图
3-5

初始化栈
InitStack(&S) 操作结果:构造一个空栈 S。
2. 销毁栈
DestroyStack(&S) 初始条件:栈 S 已存在。 操作结果:栈 S 被销毁。
3-6

判断栈空
StackEmpty(S) 初始条件:栈 S 已存在。 操作结果:若栈 S 为空栈,则返回TRUE,否则 FALE。
4. 求栈的长度
StackLength(S) 初始条件:栈 S 已存在。 操作结果:返回 S 的元素个数,即栈的长度。
3-7

5. 取得栈顶元素
GetTop(S, &e) 初始条件:栈 S 已存在且非空。 操作结果:用 e 返回 S 的栈顶元素。
a1
a2
an
……
3-8

6. 清空栈
ClearStack(&S) 初始条件:栈 S 已存在。 操作结果:将 S 清为空栈。
3-9

7. 入栈
Push(&S, e) 初始条件:栈 S 已存在。 操作结果:插入元素 e 为新的栈顶元素。
a1
a2
an
e
……
3-10

8. 出栈
Pop(&S, &e) 初始条件:栈 S 已存在且非空。 操作结果:删除 S 的栈顶元素,并用 e 返回其值。
a1
a2
an
an-1
……