网站大量收购独家精品文档,联系QQ:2885784924

数据结构与算法习题答案.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构与算法习题答案

数据结构与算法习题答案 习题一P18 单项选择题 1-6 DCCCD D 填空题 1. 元素,元素,系统 2. 集合,线性,树,图 3. 顺序,链 4. 完整,一个事实 5. 指针, 6. 算法,数据结构 7. 可行性,确定性,有穷性,有输入,有输出 问答题 设计数据的物理结构时,重点解决的问题是什么? 答:设计数据的物理结构时,重点解决的问题有两个:一个是有效存储问题,既要考虑有利于程序的处理,又要考虑存储空间的有效利用;另一个问题是逻辑结构的问题,既要考虑数据的有效存储,又要考虑物理结构和逻辑结构之间能否相互无误的转换。 顺序存储结构和链存储结构对存储空间的各有什么要求? 答:顺序存储结构要求有足够的连续的存储空间;而链存储结构的存储空间可以是离散的不连续的存储空间。 算法与程序最显著的区别是什么? 答:算法与程序最显著的区别是:第一,算法必须是有穷的,而程序不一定是有穷的;第二,程序是可以直接在计算机上执行的,而算法必须采用程序设计语言转换为程序才能在计算机上执行。 习题二P55 单项选择题 1-8 CCBDC CBC 填空题 1. 3510 2. 上溢 3. 元素,系统 4. 通过P指向已引用的结点,引用结点P的数据域,引用结点P的指针域 5. 数据项的组合顺序,第一个数据项 6. 排序对象,排序标准,排序方向,排序操作,排序结果 7. 结点交换 8. 大于 9. 头,尾 问答题 为什么在删除单链表的第i个结点时,却要查找到第i-1个结点? 答:因为单链表是通过指针进行连接的。当要删除第i个结点时,必须将第i-1个结点和第i+1个结点连接起来,也就是使第i-1个结点的指针指向第i+1个结点,因此必须查找第i-1个结点,从而得到其指针。 在查找表的端点设置“哨兵”结点为什么能提高查找算法的时间效率? 答:因为哨兵结点具有监视查找终止的作用,增加哨兵结点后可以一边查找一边移动,不会造成结点丢失。 排序关键字和查找关键字有什么关系吗? 答:排序关键字和查找关键字都是关键字,都可以由一个或者多个数据项组成。但是排序关键字中,数据项的排序顺序会影响排列结构;而查找关键字中数据项的排序顺序对查找结果没有任何影响。 算法设计题 设有非空带头结点的单链表L,结点数据域为整数key、指针域为next, 结点顺序是关于关键字key有序。试设计一个顺序查找算法,根据给定值k在L中查找与k等值的结点并输出结点数据。用非形式语言写出算法描述,并编写C程序。 答:算法描述: 算法LES设有单链表L,结点关键字域为整型key,指针为next,且L关于关键字key有序,p为指针变量,给定值为k。算法查找给定值k标识的结点数据。 LES1.[初始化]p=next(L); LES2.[结束?]若p=NULL,则转LES4继续; LES3.[比较]若 key(p)≠k,p(next(p),转LES2继续; LES4. [输出]data(p),算法终止。 C语言程序: int LES(LINKLIST *L, int key) { LINKLIST *p; P=L-next; while(p!=NULLp-data!=key) p=p-next; return data(p); } 习题三P85 单项选择题 1-5 CBACB 6-10 BABBA 11-14 BABB 填空题 1. 后进先出 2. 删除 3. 删除,同一端 4. NULL,下溢出 5. 312,123 132 6.front=mod(rear+1,m), rear=front 7. top+1 问答题 在3.1.4节的第一个应用实例中,若车厢按1、2、3、4的次序进入调度岔道,能编组为按4、3、1、2的次序开出吗?如果不能请说明理由。还有哪些开出次序也是不能的? 答:如果按1、2、3、4的次序进入调度岔道,不能编组为按4、3、1、2的次序开出,因为车厢编组调度的过程跟出入栈类似,必须按照后进先出的次序重新编组。不可能的开出次序还有1423,2413,3124,3142,3412,4132,4123,4213,4231。 对顺序栈结构,“栈底”一定要设置在数组的低下标端吗? 答:顺序栈结构的“栈底”也可以设置在数组的高下标端。因为数组是顺序存储结构,顺序栈也是顺序存储结构。当栈底设置在数组的高下标端时,当有元素入栈时栈顶指针递减,当有元素出栈时栈顶指针递增。 算法设计题 设有两个顺序栈A、B,最大程度分别为m,n,且mn。已知该两栈在运行过程中现行长度之和不超过m。问如何设计这两个栈空间最省?写出两个栈的压入和弹出操作的算法描述和C语言程

文档评论(0)

zhuwenmeijiale + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:7065136142000003

1亿VIP精品文档

相关文档