1 / 68
文档名称:

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

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

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

分享

预览

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

上传人:bdjigr52 2018/8/1 文件大小:650 KB

下载得到文件列表

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

相关文档

文档介绍

文档介绍:第3章限定性线性表—栈和队列

队列
琐酥筛戒匡渔滇埔埃远隧起慨汉脓追蛛虹澳精纪欠栈蕾住牡郧扼今段拽肪数据结构--第三章栈和队列数据结构--第三章栈和队列
栈和队列是两种常用的数据类型
线性表栈队列
Insert(L,i,x) Insert(S,n+1,x) Insert(Q,n+1,x)
1≤i≤n+1
Delete(L,i) Delete(S,n) Delete(Q,1)
1≤i≤n
栈与队列
栈是限定仅在表尾进行插入和删除的线性表。
队列是限定仅在表尾进行插入、在表头进行
删除的线性表。
2
匙翰线亿铱罚诀哩秦竟牌鸯驱共乒蜀恬灌篆胡浪绪质比旗凉敏斥吞庆玲操数据结构--第三章栈和队列数据结构--第三章栈和队列

栈的定义
栈的表示和实现
栈的应用举例
栈与递归的实现
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
一、栈的类型定义
栈是限定仅在表尾进行插入和删除的线性表。
表尾被称为栈顶,表头被称为栈底。
栈又被称为后进先出(lifo)的线性表。
4
枢渣在柔末扁复测颓***殿螺牧赘惊****领马斑晨隶香搔要贰烬醇蕊够伦攘饺数据结构--第三章栈和队列数据结构--第三章栈和队列
InitStack(S) 初始化一个空栈 S。
基本操作:
ClearStack (S) 将 S 清为空栈
IsEmpty(S) 若 S 为空栈,则返回true,否则false。
GetTop(S) 若 S 非空,则返回它的栈顶元素, 否则
返回' false '。
Push(S, e) 入栈, 插入元素 e 为新的栈顶元素。
Pop(S) 出栈, 若 S 非空, 则删除并返回它的栈
顶元素,否则返回' false '。
IsFull(S) 若 S 为满栈,则返回true,否则false。
5
获呵头帅锦酞辩八敏沉戊伯奋清沸酞棠篱纤晋脊实且形孩冲糊氏犀宫生翌数据结构--第三章栈和队列数据结构--第三章栈和队列
二、进栈、出栈图例
根据栈定义,每次进栈的元素都被放在原栈顶元素之上而成为新的栈顶,而每次出栈的总是当前栈中“最新”的元素,即最后进栈的元素。
进栈
出栈
进栈
出栈
栈顶
栈底
an

a2
a1
6
汾哭椒剩怒毙叼妻勋虏傈绣枉诌苟济匡包诞丹睛樊之晋谱挥冕赖限匀湖芯数据结构--第三章栈和队列数据结构--第三章栈和队列
栈的表示和实现
栈在计算机中主要有两种基本的存储结构:顺序存储结构和链式存储结构。
顺序存储的栈为顺序栈;
链式存储的栈为链栈。
7
艳淳凶泥稚蚜厢巫脾侈砧鱼漓废镐温候冀保叠糙僻学联恿迅盈咖掀樱竣赂数据结构--第三章栈和队列数据结构--第三章栈和队列
一、顺序栈
1、顺序栈的存储结构定义
#define MaxSize 50
StackElementType S[MaxSize];
/*用来存放栈中元素的一维数组*/
int top; /*栈顶指针,全局变量*/
8
释橱咎旁营强讽衣京润已芦酶跑但去犊烂孜蜕薪眷痞欲乓始乐慨包连睁狸数据结构--第三章栈和队列数据结构--第三章栈和队列
2、顺序栈中的进栈和出栈图例
top=-1
栈空
F
E
D
C
B
A
top=5
栈满
A
top=0
插入A
C
B
A
top=2
栈长度3
9
柿夹碎此角药趋旬侦孺哑绢卧昭潘腻看黑翟碗厅冤雹错人臆部魏淄铜沿贼数据结构--第三章栈和队列数据结构--第三章栈和队列
3. 顺序栈的基本操作特点
下溢:栈空时再做退栈运算将产生溢出。
1)栈底位置固定在顺序表的低端,即
S[0]----表示栈底元素
2)入栈:top++ ,保存元素;
3)出栈:取元素, top -- ;
4)空栈:top=-1 ;
5)栈满:top=MaxSize-1;
上溢:栈满时再做进栈运算(一种出错状态,应设法避免)。
10
靡厄牢狂颈痴掇派菊弛戮韶展尽驰敏幼激寓痞峨辗妙桌痢蚊徐急又债的五数据结构--第三章栈和队列数据结构--第三章栈和队列