- 1
- 0
- 约4.89万字
- 约 28页
- 2017-10-29 发布于浙江
- 举报
下载
第5章 堆 栈
堆栈和队列可能是使用频率最高的数据结构,二者都来自于第 3章中的线性表数据结构
(经过某种限制以后)。本章将研究堆栈,下一章研究队列。堆栈数据结构是通过对线性表的插
入和删除操作进行限制而得到的(插入和删除操作都必须在表的同一端完成),因此,堆栈是
一个后进先出(last-in-first-out, LIFO )的数据结构。
由于堆栈是一种特殊的线性表,因此可以很自然地从相应的线性表类中派生出堆栈类。我
们可以从程序3 - 1 的L i n e a r L i s t类派生出基于公式描述的堆栈类,也可以从程序 3 - 8 的C h a i n类派
生出基于链表结构的堆栈类。通过类的派生,可以大大简化程序设计的任务,但同时代码的执
行效率有明显损失。由于堆栈是一个很基本的数据结构,许多程序都要用到堆栈,本章中也直
接给出了基于公式描述和基于链表结构的堆栈类(而不是从其他类派生而来)。这两种类与对
应的派生类相比,在执行效率上将有很大提高。
本章还给出六个使用堆栈的应用程序。第一个应用是一个用来匹配表达式中左、右括号的
简单程序;第二个应用是一个经典的汉诺塔问题求解程序。汉诺塔问题要求把一个塔上的所有
碟子按照一定的规则搬到另一个塔上,每次只能搬动一个碟子,其间可以借助于第 3个塔的帮
助。在汉诺塔问题的求解过程中,每个塔都被视为一个堆栈;第三个应用使用堆栈来解决火车
车厢重排问题,其目标是把火车车厢按所希望的次序重新排列;第四个应用是关于电子布线的
问题,在这个应用中,用堆栈来确定一个电路是否可以成功布线;第五个应用用于解决 3 . 8 . 3节
所介绍的离线等价类问题。采用堆栈可以帮助我们在线性时间内确定等价类;最后一个应用用
来解决经典的迷宫问题,即寻找一条从入口到出口的迷宫路径。应该仔细地研究这个应用,因
为它体现了许多软件工程的原理和思想。
本章中所用到的C + +语言的新的特性是派生类和继承。
5.1 抽象数据类型
定义 [堆栈] 堆栈(s t a c k )是一个线性表,其插入(也称为添加)和删除操作都在表的同一端
进行。其中一端被称为栈顶(t o p ),另一端被称为栈底(b o t t o m )。
图5-1a 给出了一个四元素的堆栈。假定希望在 5-1a 的堆栈中添加一个元素E ,这个元素将
被放到元素D 的顶部,所得到的结果如图5-1b 所示。如果想从5-1b 的堆栈中删除一个元素,那
么元素E将被删除,删除E之后又将得到5-1a 的结果。如果对5-1b 的堆栈连续执行三次删除操
作,则将得到图5-1c 所示的堆栈。
E ← t o p
D ←t o p D
C C
B B B ←t o p
A ←b o t t o m A ←b o t t o m A ←b o t t o m
a ) b ) c )
图5-1 堆栈结构
1 6 2 第二部分 数 据 结 构
下载
从上面的讨论中可以看出,堆栈是一个后进先出表。这种类型的表在计算过程中将频繁使
用。A D T堆栈的描述见ADT 5-1 。
ADT5-1 堆栈的抽象数据类型描述
抽象数据类型S t a c k {
实例
元素线性表,栈底,栈顶
操作
C re a t e( ) :创建一个空的堆栈
I s E m p t y ( ) :如果堆栈为空,则返回t r u e ,否则返回
您可能关注的文档
- 《人间正道是沧桑》长篇小 说-中国-现代.pdf
- 《晒太阳跨越20年的艺术行动:中国南京“晒太阳”艺术活动文献(1986-2006)》艺术评论-选集-南京市-1986~2006.pdf
- 《神坛上的中世纪》欧洲史.pdf
- 《审美的镜子》文艺学-文集.pdf
- 《生活环境与健康》环境卫生学-基本知识.pdf
- 《石光》儿童文学-科学幻想小 说-德国-现代.pdf
- 《史斌:统御—管理控制的理论与实践(二)》青少年教育丛书.pdf
- 《史记(三)(二》青少年教育丛书.pdf
- 《史记(注译本)07》青少年教育丛书.pdf
- 《史记(注译本)21》青少年教育丛书.pdf
- 2026及未来5年中国电磁铁行业市场发展监测及投资战略咨询报告.docx
- 2026及未来5年中国建筑工程机械行业市场发展监测及投资战略规划报告.docx
- 2026及未来5年中国硫化镍行业市场调研分析及投资战略规划报告.docx
- 2026及未来5年中国烷化剂市场运营态势及发展前景预测报告.docx
- 2026年涤纶细旦长丝项目可行性研究报告(市场数据调查、监测研究).docx
- 2026年弓型虫抗体试剂项目可行性研究报告(市场数据调查、监测研究).docx
- 2026年拖链系统用高柔性数据传输电缆项目可行性研究报告(市场数据调查、监测研究).docx
- 2025年中国水晶圆盘市场调查研究报告.docx
- 2025年中国长网双辊挤浆机市场调查研究报告.docx
- 2026年及未来5年内中国液体氩气行业投资前景及策略咨询研究报告.docx
最近下载
- 2026年长沙电力职业技术学院单招职业技能考试参考题库附答案详解.docx VIP
- 陈敏恒 化工原理 第5版 课后习题答案.docx VIP
- TCAEPI43-2022 电絮凝法污水处理技术规程.pdf VIP
- 2025年中国PE_VC基金行业CFO白皮书-.pdf VIP
- 芦笋种植方案.pptx VIP
- 预防医学导论课程教学大纲.docx VIP
- 矿物加工总论.pdf VIP
- 九年级下学期数学教学计划和培优补差.docx VIP
- 【英语】河南省天一大联考·2024-2025学年高三考前模拟考试含答案或解析.pdf VIP
- ISO IEC 27005-2022 信息安全、网络安全和隐私保护—信息安全风险管理指南(2022)(推荐下载).pdf VIP
原创力文档

文档评论(0)