- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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语言程
您可能关注的文档
最近下载
- 教科版(2025秋)四年级科学下册总复习之连线题(含答案) .pdf VIP
- 2025年机修钳工(高级技师)职业技能鉴定理论考试题库资料(含答案).pdf
- 三字经全文带拼音完整版 打印版.pdf VIP
- 科教版小学科学四年级下册期末复习专项训练题04——连线题(含答案+详细解析).docx VIP
- 江苏省苏北四市(徐州、宿迁、淮安、连云港) 2025届高三第一次调研测试思想政治试题(含答案).pdf VIP
- 消防员心理培训课件.pptx VIP
- 2024年高考政治真题汇编《哲学与文化》.docx
- 风力发电场生态保护及恢复技术规范-DB21.PDF
- 诊断学-脊柱与四肢体格检查.ppt
- 耕地土壤环境质量类别划分技术规范.pdf VIP
文档评论(0)