




已阅读5页,还剩23页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第三章栈和队列 主讲 戚玉涛 主要内容 3 1栈3 2栈的应用举例3 3栈与递归的实现3 4队列 引言 本章我们将学习两种重要而特殊的线性数据结构 栈和队列从逻辑结构角度看 它们是线性表从运算角度看 它们的基本运算是线性表运算的子集 是操作受限的线性表 引言 通常称 栈和队列是限定插入和删除只能在表的 端点 进行的线性表 线性表栈队列Insert L i x Insert S n 1 x Insert Q n 1 x 1 i n 1Delete L i Delete S n Delete Q 1 1 i n 栈和队列是两种常用的数据类型 3 1栈 栈的定义 限定仅在表尾进行插入或删除操作的线性表 S a1 a2 an 栈底 Bottom 表头端称为栈底 栈顶 Top 表尾端称为栈顶 进栈 入栈 栈的插入操作 出栈 退栈 删除操作 空栈 不含元素的空表 栈底元素 a1 栈顶元素 an 栈的抽象数据类型定义 ADTStack 数据对象 D ai ai ElemSet i 1 2 n n 0 数据关系 R1 ai 1 ai D i 2 n 约定an端为栈顶 a1端为栈底 ADTStack 基本操作 栈的特点 很窄的死胡同 后进先出 LastInFirstOut 简称LIFO结构 栈又称后进先出线性表 栈的基本运算初始化InitStack S 构造一个空栈入栈Push S e 栈S已经存在 插入e为新的栈顶元素出栈Pop S e 栈S存在且非空 删除栈顶元素 e返回读栈顶元素GetTop S e 栈S存在且非空 用e返回栈顶元素判栈空StackEmpty S 栈S存在 若为空栈 返回真 否则假 栈的表示和实现 线性表 顺序表 链表 单链表 双链表 循环链表 双向 单向 栈 顺序栈 链栈 顺序栈 顺序栈 栈的顺序存储结构 是利用一组地址连续的存储单元依次存放自栈底到栈顶的数据元素 设置指针top指向栈顶元素在顺序栈中的位置 栈的顺序存储表示 defineSTACK INIT SIZE100 defineSTACKINCREMENT10 typedefstruct SElemType base SElemType top intstacksize SqStack 顺序栈的类型定义 typedefstruct SElemType base 栈底指针SElemType top 栈顶指针 intstacksize 栈已分配的空间大小 SqStack 动态分配typedefstruct SElemTypedata MAXSIZE inttop SqStack 静态分配 顺序栈的动态分配和静态分配 SqStackS 栈结构不存在S base NULL 空栈S base S top 栈满S top S base S stacksize 空栈top 0 栈满top MAXSIZE 空栈 栈中有三个元素 满栈 顺序栈中的进栈和出栈栈仅在表的一端进行操作 top指针始终指向栈顶元素的下一位置 例 在栈中插入元素A和B A B 例 删除栈顶元素B和A 删除B ERROR 顺序栈 初始化栈 StatusInitStack SqStack 入栈操作StatusPush SqStack 出栈操作StatusPop SqStack 读栈顶元素GetTop SqStackS SElemType 链栈 链栈 栈的链式表示优点 没有容量限制 在内存允许的范围内不会出现溢出typedefstructSTNode SElemTypedata structSTNode next STNode LinkStack 初始化InitStack LinkStack 读栈顶元素GetTop LinkStackS SElemType 入栈Push LinkStack 出栈Pop LinkStack 栈总结栈是一种具有线性结构的数据结构 是操作受限的线性表 栈的特点是后进先出 只能在栈顶进行插入和删除操作 分别称为入栈和出栈 顺序栈中 栈空标志 S top S base 栈满标志 S top S base S stacksize 链栈中 不设头结点 头指针就是栈顶指针 栈空S NULL 练习 1 设一个栈的输入序列为A B C D 则借助一个栈所得到的输出序列不可能是 A A B C D B D C B A C A C D B D D A B C答 可以简单地推算 得容易得出D A B C是不可能的 因为D先出来 说明A B C D均在栈中 按照入栈顺序 在栈中顺序应为D C B A 出栈的顺序只能是D C B A 所以本题答案为D 练习 2 已知栈的输入序列为1 2 3 n 输出序列为a1 a2 an 若a1 n 问ai ai n i 13 I表示入栈 O表示出栈 若元素入栈顺序为1234 为了得到1342的出栈顺序 相应的I和O的操作串是什么 I1O1I2I3O3I4O4O2 4 设n个元素进栈序列是1 2 3 n 其输出序列是p1 p2 pn 若p1 3 则p2的值 A 一定是2 B 一定是1 C 不可能是1 D 以上都不对答 当p1 3时 说明1 2 3先进栈 立即出栈3 然后可能出栈 即为2 也可能4或后面的元素进栈 再出栈 因此 p2可能是2 也可能是
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 无人机物流保证承诺书(6篇)
- 难点解析-人教版八年级物理上册第5章透镜及其应用-透镜专项测试试卷(附答案详解)
- 考点攻克人教版八年级物理上册第5章透镜及其应用-生活中的透镜综合测评试题(解析卷)
- 京津冀大气污染防治协作机制考核试卷
- 2025年燃气管道行业反垄断考核试卷
- 2025年工业废气脱硝催化剂再生技术考核试卷
- 借助数学文化理解数学本质
- 解析卷-人教版八年级上册物理物态变化《汽化和液化》必考点解析试题(含解析)
- 2025年建筑工程监理合同协议(质量监督)
- 医师定期考核试题及答案
- 技术部经理竞聘演讲稿
- 电动车 - 雪佛兰Bolt减速器拆解分析报告
- 2025年河北建设投资集团有限责任公司人员招聘笔试备考题库及一套完整答案详解
- 腻子班组安全教育测试题及答案解析
- 2025年行政执法考试题库及答案(单选题)
- 考点解析自考专业(小学教育)(黄金题型)附答案
- 具身智能+军事模拟训练系统研究报告
- 交通志愿者培训
- 二甲评审院感工作汇报
- 2025年军考真题数学试卷及答案
- 2025年政务服务面试题库及答案
评论
0/150
提交评论