Ch3.栈和队列-栈.ppt
《Ch3.栈和队列-栈.ppt》由会员分享,可在线阅读,更多相关《Ch3.栈和队列-栈.ppt(32页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第第第三三三三章章章章 栈和队列栈和队列 3.1 栈 3.1.1 抽象数据类型栈的定义 3.1.2 顺序栈 3.1.3 链栈 本章节的基本内容是:本章节的基本内容是:1 栈(Stack)是限制在表的一端进行插入和删除运算的线性表,通常称插入、删除的这一端为栈顶(Top),另一端为栈底(Bottom)。当表中没有元素时称为空栈。假设栈S=(a1,a2,a3,an),则a1称为栈底元素,an为栈顶元素。栈中元素按a1,a2,a3,an的次序进栈,退栈的第一个元素应为栈顶元素。换句话说,栈的修改是按后进先出的原则进行的。因此,栈称为后进先出(LIFO)或下推表。3.1.1 栈的定义及基本运算2栈的
2、逻辑结构栈的逻辑结构空栈:不含任何数据元素的栈。(a1,a2,an)栈:限定仅在表尾进行插入和删除操作的线性表。栈顶栈顶栈底栈底允许插入和删除的一端称为栈顶,另一端称为栈底。3a1a2a3入栈入栈出栈出栈栈底栈底栈顶栈顶插入:入栈、进栈、压栈插入:入栈、进栈、压栈删除:出栈、弹栈删除:出栈、弹栈栈顶栈顶栈顶栈顶栈的示意图栈的示意图4栈的操作特性:栈的操作特性:后进先出后进先出a1a2a3入栈入栈出栈出栈栈底栈底栈顶栈顶插入:入栈、进栈、压栈插入:入栈、进栈、压栈删除:出栈、弹栈删除:出栈、弹栈栈顶栈顶栈的示意图栈的示意图5例:有三个元素按例:有三个元素按a、b、c的次序依次进栈,且每个的次序依
3、次进栈,且每个元素只允许进一次栈,则可能的出栈序列有多少种?元素只允许进一次栈,则可能的出栈序列有多少种?栈底栈底栈顶栈顶ab栈顶栈顶c栈顶栈顶 情况情况1:栈的逻辑结构栈的逻辑结构6栈底栈底栈顶栈顶ab栈顶栈顶c栈顶栈顶出栈序列:出栈序列:c出栈序列:出栈序列:c、b出栈序列:出栈序列:c、b、a例:有三个元素按例:有三个元素按a、b、c的次序依次进栈,且每个的次序依次进栈,且每个元素只允许进一次栈,则可能的出栈序列有多少种?元素只允许进一次栈,则可能的出栈序列有多少种?栈的逻辑结构栈的逻辑结构 情况情况1:7栈底栈底栈顶栈顶ab栈顶栈顶出栈序列:出栈序列:b 情况情况2:例:有三个元素按例
4、:有三个元素按a、b、c的次序依次进栈,且每个的次序依次进栈,且每个元素只允许进一次栈,则可能的出栈序列有多少种?元素只允许进一次栈,则可能的出栈序列有多少种?栈的逻辑结构栈的逻辑结构8栈底栈底a出栈序列:出栈序列:b出栈序列:出栈序列:b、c出栈序列:出栈序列:b、c、ac栈顶栈顶栈顶栈顶注意:注意:栈只是对表插入和删除操作的位置进行了限栈只是对表插入和删除操作的位置进行了限制,并没有限定插入和删除操作进行的时间。制,并没有限定插入和删除操作进行的时间。例:有三个元素按例:有三个元素按a、b、c的次序依次进栈,且每个的次序依次进栈,且每个元素只允许进一次栈,则可能的出栈序列有多少种?元素只允
5、许进一次栈,则可能的出栈序列有多少种?栈的逻辑结构栈的逻辑结构 情况情况2:9栈的抽象数据类型定义栈的抽象数据类型定义 ADT StackData 栈中元素具有相同类型及后进先出特性,栈中元素具有相同类型及后进先出特性,相邻元素具有前驱和后继关系相邻元素具有前驱和后继关系Operation InitStack(S)构造一个空栈 Push(S,x)在栈顶插入一个元素x,如果插入不成功,抛出异常;否则栈顶增加了一个元素。10Pop(S,e)删除栈顶元素,如果删除成功,返回被删元素值e,否则,抛出异常;否则栈减少了一个元素.Stacktop(S,e)读取当前的栈顶元素,若栈不空,返回当前的栈顶元素值
6、e,栈不变.Stackempty(S)判断栈S是否非空,空返回1,非空返回0。ADT Stack栈的抽象数据类型定义栈的抽象数据类型定义 11 由于栈是运算受限的线性表,因此线性表的存储结构对栈也适应。栈的顺序存储结构简称为顺序栈,它是运算受限的线性表。因此,可用数组来实现顺序栈。因为栈底位置是固定不变的,所以可以将栈底位置设置在数组的两端的任何一个端点;栈顶位置是随着进栈和退栈操作而变化的,故需用一个整型变量top来指示当前栈顶的位置,通常称top为栈顶指针。3.1.2 顺序栈12栈的顺序存储结构及实现栈的顺序存储结构及实现 顺序栈顺序栈栈的顺序存储结构栈的顺序存储结构如何改造数组实现栈的顺
7、序存储?如何改造数组实现栈的顺序存储?0 1 2 3 4 5 6 7 8a1确定用数组的哪一端表示栈底。确定用数组的哪一端表示栈底。附设指针附设指针top指示栈顶元素在数组中的位置。指示栈顶元素在数组中的位置。top3.1.2 顺序栈13出栈:出栈:top减减1进栈:进栈:top加加1栈空:栈空:top=-1 0 1 2 3 4 5 6 7 8a1topa2topa3top栈满:栈满:top=MAX_SIZE-1栈的顺序存储结构及实现栈的顺序存储结构及实现 3.1.2 顺序栈14因此,顺序栈的类型定义只需将顺序表的类型定义中的长度属性改为top即可。顺序栈的类型定义如下:#define Sta
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Ch3 队列
限制150内