- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
线性表,栈,队列习题课 主讲老师:陈玉泉 助教:刘磊 主要内容 顺序表 单链表(单向循环链表) 双链表(双向循环链表) 栈(顺序存储,链式存储) 队列(顺序存储,链式存储) 应用 概念题 1.简单比较线性表的顺序和链接两种存储方式各有什么主要优缺点? 顺序存储: 优点:(1)在结点等长时可随机存取;(2)存储密度高,节省存储空间;(3)用结点的物理次序反映结点之间的逻辑关系。缺点:(1)插入和删除结点时要移动大量结点;(2)必须静态分配连续的空间。 概念题(一) 链接存储: 优点:(1)插入和删除比较灵活,不需要大量移动结点;(2)动态分配空间比较灵活,不需要预先申请最大的连续空间。缺点:(1)增加指针的空间开销;(2)检索必须沿链进行,不能随机存取。 概念题(二) 2.编号为1,2,3,4的四辆列车,顺序开进一个栈式结构的站台,为开出车站的顺序有多少种可能?请把他们具体写出来。 方法:可以先一位一位的假设,然后逐步给出后面的可能的情况。 概念题(三) 解:共有14种可能,分别如下: 4321,3214,3421,3241,2134, 2143,2341,2314,2431,1234, 1243,1342,1324,1432 概念题(四) 3.证明:有可能从初始输入序列1,2,…,n,利用一个栈得到输出序列P1,P2,…,Pn,( P1,P2,…,Pn是1,2,…,n的一种排列)的充分必要条件是,不存在这样的下标i,j,k,满足ijk同时PjPkPi。 概念题(五) 必要性:用反证法证明。 假如存在这样的下标i,j,k,满足ijk同时PjPkPi,则有: (1)由于ijk,三元素出栈的相对次序是Pi ,Pj,Pk。 (2)因为PjPkPi,所以入栈的相对次序为Pj,Pk,Pi。 概念题(六) 根据(2),当Pi入栈时,Pj和Pk都在栈中,并且Pj必在Pk之下。所以出栈的相对次序应该是Pi,Pk,Pj,与(1)矛盾。 充分性: 设序列P1,P2,…,Pn符合条件,则我们可以用下述方法逐个的使Pi加入该序列。 概念题(七) 情况1:若Pj在输入序列的剩余部分(假设1,2,…,i-1已经输入)i,i+1,…,n中,则把Pj之前的元素及Pj进栈,然后把Pj从栈中取出送入序列。 情况2:若Pj已经在栈中,则他必然在栈顶(这是因为栈中元素在任何时刻显然都是从顶向下递减的,而刚离栈的Pj-1大于栈中的所有元素。假如Pj不在栈顶,设栈顶元素是Pk,我们有 j-1jk,而Pj-1 Pk Pj,矛盾)把栈顶元素取出送入序列。 重复上述步骤,可得到所要求的序列。 概念题(八) 4.把下面的中缀表达式转化为相应的后缀和前缀表达式: (A+B)*C-D*F+C 前缀: (A+B)*C-D*F+C =((((A+B)*C)-(D*F))+C) =(+(-(*(+AB)C)(*DF))C) =+-*+ABC*DFC 概念题(九) 后缀: (A+B)*C-D*F+C =((((A+B)*C)-(D*F))+C) =((((AB +)C *) (DF *) -)C +) =AB +C *DF *-C + 概念题(十) 5. 设有一个双端队列,元素进入该队列的顺序是1, 2, 3, 4。试分别求出满足下列条件的输出序列。 (1) 能由输入受限的双端队列得到,但不能由输出受限的双端队列得到的输出序列; (2) 能由输出受限的双端队列得到,但不能由输入受限的双端队列得到的输出序列; 概念题(十一) 解答:允许在一端进行插入和删除,但在另一端只允许插入的双端队列叫做输出受限的双端队列,允许在一端进行插入和删除,但在另一端只允许删除的双端队列叫做输入受限的双端队列。? 输出受限双端队列不能得到的输出序列有: 4 1 3 2 4 2 3 1 输入受限双端队列不能得到的输出序列有: 4 2 1 3 4 2 3 1 程序设计题 6.将具有头结点的单链表的所有指针全部进行倒向。要求使用的额外空间只能为 O(1),时间代价只能为O(n),其中 n 为结点个数。 解析:首先考虑头结点,然后对链表进行一遍遍历即可。 程序设计题(一) templateclass Type void ListType :: Inverse ( ) { if (head-Next==NULL ||Head-Next-Next==NULL) return; ListNodeType *pre=Head-Next, *cur=pre-Next,*next; pre-Next=NULL; 程序设计题(二) while (cur) { next=cur-Next; cur
文档评论(0)