- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
栈和队列是重要的数据结构 栈和队列是线性表的子集 (是插入和删除受限的线性表) 栈必须按“后进先出”的规则进行操作, 队列必须按“先进先出”的规则进行操作。 和线性表相比,它们的插入和删除操作受更多的约束和限定,故又称为限定性的线性表结构。 从“数据结构”的角度看:它们都是线性结构,即数据元素之间的关系相同。但它们是完全不同的数据类型。除了它们各自的基本操作集不同外,主要区别是对插入和删除操作的限定。 栈的抽象数据类型定义(顺序栈) 类型定义 操作定义 顺序栈 静态数组实现 动态数组实现 n转换为d(10,2,8,16)进制 将n/d求余数,同时商继续转换,直到商为0结束。 余数要逆序输出 吻合栈的特征 1)求余数为进栈 2)输出为出站栈 while(n) { push(a,n%d); n=n/d; } While(!stackempty(a)) {pop(a,x); printf(x); } if(in) { Printf(“%d”,S.base[i]); } 20-((3+(8-1)*2)+5) 20-(3+(8-1)*2)+5) 20-((3+)8-1(*2)+5) 括号匹配问题的分析:最先读取的左括号,最后执行push,读取的右括号,将一定有一个左括号的存在。 A)判断栈是否为空(错误) B)非空的话,pop 左括号进栈 右括号 判断栈是否为空:error(flag=0) 栈非空:看栈顶元素是否和它匹配 匹配:出栈 不匹配: error (flag=0) 字符读完毕后:栈为空结论就是匹配 括号匹配的算法 表达式定义一个长长的字符串exp。 读取exp的每个字符,当前字符为ch(while) { if(ch==‘(‘) push(S,ch); else if(ch==‘)’) { if(stackempty) pop(s,e); else{ 不匹配 break;} } else ch++; } if(stackempty())匹配 Else不匹配 多个行编辑的实现 逐个读入字符 普通字符进栈: #:栈顶元素出栈 @:栈顶元素出(行首)(统计行已经有的字符数:\n--- @前):pop 栈中最终剩余元素才是我们实际看到的字符:出栈?进一个新栈?出栈 例四、迷宫【问题描述】 以一个 m*n的长方阵表示迷宫,0和1分别表示迷宫中的通路和障碍。设计一个程序,对任意设定的迷宫,求出一条从入口到出口的通路。或得出没有通路的结论 迷宫用计算机来求解方法其实很简单, 就是走遍所有可能的路径,直到找到出口为止, 当走到错误的路线的时候,就退回上一个路口交叉点,选择其他方向. 这种思维其实用堆栈(stack)完全可以解决 迷宫思路 ?在设计这个问题时,我考虑到以下几点:????????1、迷宫入口和出口的坐标????????2、保存迷宫的2维数组????????3、获得路径的函数 我们模仿人走迷宫时的思路,设置一个当前点,一个目标点(下一个要走的点)。初始情况下当前点为入口,终止条件为当前点为出口,这样,我们的函数大概结构就出来了。????????在从入口到出口的过程中程序对当前点的上、下、左、右四个点依次进行判断,当发现任一个方向是未走过的区域时,就将当前点指向那个点进行尝试,同时将当前点入栈并做标记。而当4个方向都不通或已走过时,则为死路,标记当前点为死路并从栈中弹出上一个点继续进行尝试,这时因为当前点已被标记为死路,则弹出上一个点时就不会重复这条路,达到寻找正确路径的效果。 描述: 当前点: 坐标位置(x,y),可用二维数组实现(seat) 记录当前点探索的方向:di 如起点为(1,1),先判断东(1),南(2),西(3),北(4),顺时针方向转,判断其邻居是否通,不同的话,邻居转向下一个方向探索,若均不通,则按原路返回,退栈.取栈顶元素,沿下一个方向探索 注意:凡走过的也要标记符号: 迷宫算法 迷宫演示见cd中的递归 cd迷宫 DS-Algo-VC下的第三章算法3.3 运算符号规则 a ? b + (c ? d / e) ? f 运算先后顺序为:*,/,-,*,+ 中序规则为+*ab*-c/def 因为运算的 1) a * b 2) d / e 3) c-2) 4) 3) *f 5) 1) +4) 合并的结果为: a*b + c-d/e*f 运算符号规则 a ? b + (c ? d / e) ? f 运算先后顺序为:*,/,-,*,+ 先序规则为+*ab*-c/def 因为运算的 1) *ab 2) /de 3)-c2) 4)*3)f 5)+1)4) 合并的结果为: +*ab*-c/def
您可能关注的文档
- 第七章集成稳压器.ppt
- 第七章项目质量管理.ppt
- 第七节住院患者护理记录单图文.ppt
- 第七节电流和电压、电阻的关系.ppt
- 第七节直流电机运行原理(发电机).ppt
- 第七节:斯托克斯公式-环流量不要求.ppt
- 第七讲一般均衡和帕累托效率理论.ppt
- 第七讲二维数组的定义及使用1.ppt
- 第七讲分组交换原理.ppt
- 第七讲厂商均衡理论(西南财大).ppt
- (2025修订版)无人机资格证考试题库(轻巧夺冠)附答案详解.docx
- (三级)无人机驾驶员(航拍)理论考试题库(基础题)附答案详解.docx
- (2025修订版)无人机驾驶员初级植保理论考试复习题库及参考答案详解(新).docx
- (2025修订版)民用无人机驾驶执照CAAC理论考试题库附参考答案详解(完整版).docx
- (2025修订版)无人机驾驶员高级巡检理论考试复习题库及参考答案详解【轻巧夺冠】.docx
- (2025修订版)无人机飞行原理与性能理论知识考试题库附答案详解【考试直接用】.docx
- (2025修订版)最新无人机驾照考试题库附答案详解【基础题】.docx
- 2026年国家电网招聘之文学哲学类考试题库300道附完整答案(必刷).docx
- 2026年县乡教师选调进城考试《教育学》题库300道【完整版】.docx
- 2026年国家电网招聘之金融类考试题库300道(综合卷).docx
最近下载
- 第二讲 二“主心骨”和“定海神针” 课件学生读本 高年级.ppt
- 1.5.2压缩与备份(课件)-【中职专用】高一信息技术同步课堂(高教版2021基础模块上册).pptx VIP
- 高三数学解三角形及应用省公开课一等奖全国示范课微课金奖PPT课件.pptx VIP
- 数字媒体技术专业人才需求调研报告.pdf VIP
- !24J306图集窗井、设备吊装口、排水沟、集水坑.pdf VIP
- 调色师:达芬奇视频剪辑调色从入门到精通(上篇,共上中下3篇).pptx VIP
- 洁净煤技术(第二版)第七章煤气化联合循环发电与多联产技术.ppt VIP
- 内墙水性涂料涂饰检验批.docx VIP
- 2.1.2 了解网络协议(课件)-【中职专用】高一信息技术同步精品课堂(高教版2021·基础模块上册).pptx VIP
- 半导体车间安全培训课件.ppt VIP
文档评论(0)