- 1、本文档共49页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[信息与通信]数据结构与算法分析第4章
4.3.1 顺序栈 程序设计中,用一维数组作为栈的顺序存储空间。为使用方便,通常栈顶指针指向栈空间的高地址一端。 栈顶指针指向栈中第一个空闲位置。 栈的基本运算:1、入栈运算 2、退栈运算 3、读栈项元素。 4.3.2 链式栈 采用链式存储结构的栈。 通常用来收集计算机存储空间中所有空闲的存储结点,即可利用空间表。 4.3.3 顺序栈与链式栈的比较 1. 基本操作时间代价的比较 基本操作 时间代价 入栈运算 退栈运算 读栈项元素 顺序栈 链式栈 2. 存储空间利用的比较 4.3.4 递归的实现 栈的最广泛应用: 子程序调用时将有关子程序的必要信息压入到一个栈中 子程序调用结束后,再将信息从栈中弹出。 采用栈,递归调用(不是全部)可以用迭代来代替。 4. 4 队列 队列:符合“先进先出,后进后出”的原则,在一端进行插入,在另一端进行删除的线性表。 如消息映射队列。例:排队,自动流水线上装配部件。计算机操作系统利用队列管理多个用户程序:消息队列。 允许插入的一端称为队尾,用尾指针(rear)指向;允许删除的一端称为队首,用头指针(front)指向。 队尾插入元素称为入队操作,队首删除元素称为出队操作。 4.4.1 顺序队列 顺序队列实现上的困难: 1.要求队列中n个元素都存储在数组的前n个单元中。 (1)0号单元存储队尾元素。 删除元素的时间代价: Θ(1) 插入新元素的时间代价:Θ(n) (1)0号单元存储队首元素。 插入新元素的时间代价:Θ(1) 删除元素的时间代价: Θ(n) 2. 不要求队列中n个元素都必须存储在数组的前n个单元中。 删除元素的时间代价: Θ(1) 插入新元素的时间代价:Θ(1) 但如果队列不断地插入和删除元素后,整个队列向数组中编号较高的位置移动。 解决方法:循环队列 思考:一维数组中如何实现循环队列。 ?循环队列中如何区分队列空和队列满 例1:队列中只有一个元素,位于单元m。 front = m,rear = m。 删除该元素,front = front+1=m+1=rear+1 队列空时,rear 比 front 小 1。 例2:循环队列如右示,只有一个 空闲单元m。 此时:front=m+1, rear=m-1 若插入一个新元素,则rear=rear+1=m 即队列满时,rear 比 front 小 1。 解决办法:1、设置标志区别队列空或满。2、以尾指针追上头指针作为队列满的条件。 3、记录元素的数量。 4.4.2 链式队列 4.4.3 顺序队列和链式队列的比较 表达式计算 要求: 从左到右只需一次扫描表达式。 自动区分运算符和运算数。 自动根据运算符的优先级确定计算顺序。 表达式计算 运算符和优先级: 低 + - × / 高 ^ 特殊: ( ) ? 如何判断山峰 利用栈实现表达式计算 规则: 在表达式最后加一个结束符; 设置两个栈:运算符栈,暂存表达式处理过程中的运算符。 运算数栈,暂存表达式处理过程中的运算数。 将 )看作低优先级运算符。 从左到右读入表达式中的符号,如果读出的是: 运算数,直接压入运算数栈,再读入下一个符号。 运算符,则: 读出的运算符的优先级大于运算符栈中栈顶运算符的优先级,且将读出的运算符压入运算符栈中,读下一个符号。 读出的运算符的优先级大于运算符栈中栈顶运算符的优先级,则从运算数栈中连续退出两个运算数,再从运算符栈中退出一个运算符,做相应运算,将运算结果压入运算数栈中。继续考察当前运算符,不读入下一个符号。 若读出是“(”,则直接压入运算符栈中。 若读出是“)”,且运算符栈中栈顶运算符为“(”,则从运算符栈中退出“(”,读下一个符号。 读出的是“;”,且运算符栈中栈顶运算符也为“;”,则表达式处理结束,最后的计算结果为运算数栈的栈顶元素。 Jose问题 有n个猴子围成一圈,从第1个猴子开始计数,到第m个猴子时让该猴子出列,再重新计数,直到所有猴子出列。仿真猴子出列的顺序。 Jose问题 Jose问题 虚拟仿真 问题: 某正在建设的商场需要安装电梯,预计使用电梯的顾客人数显正态分布,平均为每分钟m个。电梯运载一次的时间为n分钟,每部电梯装载的人数为L。 要求:
您可能关注的文档
- [信息与通信]第09讲-组合逻辑电路分析与设计.ppt
- [初一理化生]第二章运动和力[科学].ppt
- [互联网]chap6 挡土墙设计1.ppt
- [医药卫生]昏厥、昏迷、猝死鉴别.ppt
- [工学]信道及其容量.ppt
- [信息与通信]TD-SCDMA信令流程.ppt
- [历史学]第二章对国家出路的早期探索.ppt
- [工学]数值分析25__常微分方程的数值解.ppt
- [四年级英语]grade5 m9完结稿.ppt
- [工学]测量集成霍尔传感器的灵敏度.ppt
- 音乐流媒体平台2025年版权运营策略优化与用户付费模式创新趋势报告.docx
- 线上宠物行为训练平台用户行为数据挖掘与分析报告.docx
- 生态监测网络建设2025:实施方案与生态环境保护实践.docx
- 2025年环卫电动车辆采购风险评估与调度应急预案.docx
- 新能源汽车电池回收技术路径优化与2025年市场前景预测报告.docx
- 第7课古代的商业贸易(课件)--高二历史统编版选择性必修2经济与社会生活(1).pptx
- 2025年环卫电动车辆采购预算管理与运营成本控制研究报告.docx
- 食品添加剂产业2025:合成生物学创新驱动发展分析.docx
- 2025年环卫电动车辆采购政策支持与调度体系构建报告.docx
- 重水研究堆年度报告.pdf
最近下载
- 2012年单证员考试国际商务单证缮制与操作真题试题与答案 .pdf VIP
- 2016年国际商务单证员《国际商务单证缮制与操作》历年真题及详解.doc VIP
- 2023年单证员考试国际商务单证缮制与操作真题试题及答案.doc VIP
- 医院护理培训课件:《如何进行有效的护患沟通》.pptx
- 2024年单证员考试国际商务单证缮制与操作模拟真题试题与答案.doc VIP
- 广发证券-顺丰控股-002352-多年布局终结果,时效国际两开花.pdf VIP
- 2022年单证员考试操作试题及参考答案.doc VIP
- 女性乳腺癌术后患肢功能锻炼.ppt VIP
- 2024江苏省地质局所属事业单位招聘89人笔试模拟试题及答案解析.docx VIP
- 血液灌流课件.ppt VIP
文档评论(0)