- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三章 特殊线性表 栈 队列 1、编号为1,2,3,4的四辆列车,顺序开进一个栈式结构的站点,问开出车站的顺序有多少种可能?请具体写出所有可能的出栈序列。 2、设有数组A[1..m],分配给两个栈S1和S2使用,如何分配数组空间,使得对任何一个栈,当且仅当数组空间全满时才不能插入。试说明你的分配方法。 3、现有中缀表达式E=((A-B)/C+D*(E-F))*G(1)写出与E等价的后缀表达式。(2)用一个运算符栈来模拟表达式的转换过程,画出在将E转换成后缀表达式的过程中,栈内容的变化图。(3)用一个操作数栈来模拟后缀表达式的求值过程,画出对(2)中所得到的后缀表达式求值时,栈中内容的变化图。 4、设计一个算法,它使用两个栈,一个栈存放操作数,另一个栈存放运算符。把已知算术表达式(中缀表示)的字符串作为输入,计算算术表达式的值。 5、假设以一维数组Q[0..m-1]存储循环队列的元素。若要使这m个分量都得到利用,则需另设一个标志tag,以tag为0或1来区分尾指针和头指针值相同时队列的状态是“空”还是“满”。试编写与此结构相应的插入和删除算法,并从时间和空间角度讨论设标志和不设标志这两种方法的使用范围(如当m较小而队列中每个元素占的空间较多时,哪一种方法较好)。 6、假设以数组Q[0..m-1]存放循环队列的元素,同时设变量rear和quelen分别指示循环队列中队尾元素的位置和当前队列中元素的个数。试给出此循环队列满的条件,并写出插入和删除算法。 7、如何用两个栈来实现队列?并写出队列基本操作的算法。 研究内容 3.1 栈 3.2 队列 栈和队列是计算机科学和程序设计中应用非常广范的两种数据结构,主要用于临时性地缓存数据元素(把一些数据保存起来供后面的计算中使用)。栈也常称为堆栈。 栈和队列可以方便地用线性表的基本结构实现,因此不少教科书把栈和队列看作是特殊的操作受限的线性表。 从抽象数据类型的角度看,栈和队列是与线性表完全不同的数据结构,因为它们具有不同的操作集合。 栈和队列都提供了元素存入、访问和删除操作,以及几个辅助操作,如创建、判断空等。 这两种结构的特点在于访问和删除操作:任何时刻能访问、删除的元素是默认的且唯一确定的。当时保存的其他元素都不能访问、删除。存入和删除操作将改变能访问的元素。 栈和队列给元素使用规定了顺序,两者的不同也就在这里。 栈及其基本运算 栈(Stack)是一种容器,可存入数据元素、访问元素、删除元素。在这里没有位置的概念。 栈保证任何时刻可访问、删除的元素都是前面最后存入栈里的那个元素。因此确定了一种访问顺序。 基本操作是封闭集合(与表不同),通常包括: ? 创建空栈 ? 判断栈是否为空 ? 向栈中插入(或称推入/压入,push)一个元素 ? 从栈中删除(或称弹出,pop)一个元素 ? 取当前(最新)元素的值(并不删除) DestroyStack 前置条件:栈已存在 输入:无 功能:销毁栈 输出:无 后置条件:释放栈所占用的存储空间 Push 前置条件:栈已存在 输入:元素值x 功能:在栈顶插入一个元素x 输出:如果插入不成功,抛出异常 后置条件:如果插入成功,栈顶增加了一个元素 Pop 前置条件:栈已存在 输入:无 功能:删除栈顶元素 输出:如果删除成功,返回被删元素值,否则,抛出异常 后置条件:如果删除成功,栈减少了一个元素 GetTop 前置条件:栈已存在 输入:无 功能:读取当前的栈顶元素 输出:若栈不空,返回当前的栈顶元素值 后置条件:栈不变 template class T void seqStack::Push ( T x) { if (top==MAX_SIZE-1) throw “溢出”; top++; data[top]=x; } template class T T seqStack:: Pop ( ) { if (top==-1) throw “溢出”; x=data[top--]; return x; } 栈与递归 ? 递归 ? 递归函数到非递归函数的转换* ? 简化的背包问题* 迷宫问题 表达式计算 ? 后缀表达式的求值 ? 中缀表达式到后缀表达式的转换 例1:括号匹配问题: 假设一个算术表达式中允许包含两种括号:圆括号与方括号,其嵌套的次序随意。请设计一个算法
您可能关注的文档
- 光电检测技术课件chapter2光电检测系统的发光光源.ppt
- 光电检测技术课件chapter3光电检测系统的光电接收器件.ppt
- 光电检测技术课件chapter4光电空间信息检测技术与系统.ppt
- 科技英语写作5subclause.ppt
- 科技英语写作6sub.mood,emphasis.ppt
- 光电检测技术课件chapter6光电干涉检测技术与系统.ppt
- 科技英语写作7ellipseinversiondm.ppt
- 光电检测技术课件chapter7光电衍射检测技术与系统.ppt
- 伦理执医真题(2003-2007年).pdf
- 科技英语写作Chapt.3Parenthesis,negation,tense,voiceandcomparison.ppt
最近下载
- 2024天津市津南区事业单位考试笔试题库及答案.docx VIP
- [2025秋期版]国开电大专科《人力资源管理》一平台形考任务一至四在线形考试题及答案 (2).pdf
- 2025年新版人教版四年级上册英语 四上Unit 2 My friends单元整体教学设计(1).pdf VIP
- 数字媒体技术专业申报材料.doc VIP
- 2025上海市农业科学院工作人员招聘(2025年第二批)笔试备考题库及答案解析.docx VIP
- 2024年浙江省杭州市中考数学试题卷(含答案详解).docx
- 老年人日常生活护理案例及分析.docx VIP
- 2025天津市津南区法院系统招聘考试真题.docx VIP
- 2025上海市农业科学院工作人员招聘(2025年第二批)笔试参考题库附答案解析.docx VIP
- 国有大型煤炭企业如何科学编制“十五五”发展规划.docx
文档评论(0)