- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构(C语言)清华大学出版社 课后题1-5章答案
第一章
选择题
1.A 2.B 3.C 4.D 5.B 6.C
第二章
选择题
1.A 2.D 3.D 4.C 5.A 6.C 7.B 8.B 9.D 10.D
应用题
1.
应该选用链接存储表示。如果才用顺序表示法,必须在一个连续的可用空间中为这N个表分配空间。初始时候因为不知道哪个表增长得快,必须平均分配空间。在程序运行过程中,有的表占用的空间增长得快,有的表占用空间增长得慢,有的表很快就使用完了分配给它的空间,有的表才占用了少许空间,在进行元素的插入时候就必须成片的移动其他表的空间,以空出位置进行插入;在元素删除时为填补空白,也可能移动许多元素。这个处理过程及其繁琐和低效。
如果采用链接存储,一个表的空间可以连续也可以不连续。表的增长通过动态分配内存得以解决,只要存储器未满,就不会发生表溢出;表的收缩可以通过动态存储释放实现,释放的空间还可以在以后动态分配给其他的存储需求,非常灵活方便。对于N个表(包括表的总数可能变化)共存的情形,处理十分简单快捷,插入、删除时间复杂度为O(1)。所以才用链接存储表示较好。
2.
一般来说,链式存储结构克服了顺序存储结构的三个缺点。首先,插入、删除操作不需要移动元素,只修改指针;其次,不需要预先分配空间,可根据需要动态申请空间;其三,表容量只受到内存空间的限制。其缺点是因为指针增加了空间开销,当空间不允许时,就不能克服顺序存储的缺点。
3.
顺序结构时ai与ai+1的物理位置相邻,链表结构时两者的位置不要求一定相邻。
7.
在顺序表中插入和删除一个节点需平均移动全表一半的节点。具体的移动次数取决于所插入和删除的节点的位置i和全表的长度n这两个因素。
算法设计题
分析:遍历整个顺序表,用k记录在x~y之间元素的个数,k的初始值为0。对于当前遍历到的元素,若其值在x~y之间,则前移k个位置;否则执行++k。这样每个不在x~y之间的元素仅仅移动一次,所以效率较高。
void Delete_xy SeqList *A,int x,int y int k;
k 0;
for i 0;i A- length;++i if A- data[i] x A- data[i] y k++;
else A- data[i-k] A- data[i]; /* 当前元素前移k个位置 */
A- length A- length - k; /* 线性表长度减小 */ 2.设集合A和B分别用两个递增有序的单链表表示,其中他们的头指针是pa和pb。求A交B的操作就是对A扫描,如果当前的扫描到的元素在B中出现则保留,否则删除。
LinkList AbingB LinkList A,LinkList B LinkList pa,pb,pre;
pa A- next;
pb B- next;
pre A;
while papb if pa- data pb- data /* 若大于,则pb指针后移 */ q pa; pa pa- next; pre- next pa; free q ; else /* 相等,保留,pa、pb指针后移 */ pre pa; pa pa- next; pb pb- next; while pa /* 若单链表A没有遍历完,则将剩余节点删除 */
q pa;
pa pa- next;
free q ; pre- next NULL;
return A ; 本算法的时间开销主要是遍历,故时间复杂度为O n
分析:依次遍历访问单链表的节点,用冒泡排序的思想将该链表整理成有序。冒泡排序算法的基本思想比较简单:两两比较元素,值域小的元素前置,直到不再发生交换。
LinkList Sort_LinkList LinkList L int x,noswap;
LinkList pa,pb;
pa L- next;
noswap 1;
if pa while noswap noswap 0; pb pa- next; while pb pb- next! NULL if pb- data pb- next- data x pb- data; pb- data pb- next- data; pb- next- data x; noswap 1; pb pb- next; 本算法的时间效率是O n^2 ,效率相对较低,本题其他高效求解算法可参见第9章中介绍的其他排序算法。另外本题中交换节点才用交换值域,另一种方法是交换指针,这样做比较复杂,读者可以尝试编程解决。
第三章
选择题
1.C
您可能关注的文档
- 支持应用、数据和问恢复,防止业务中断同步资料.doc
- 收入分配制度改革的利益表达失衡及其治理.doc
- 收录金融方面的专英语词汇.doc
- 收费 360金山星卡巴对比实测.doc
- 改SH3503-007全6册最终版.doc
- 改变你一生的30做人智慧.docx
- 攻破触控S60诺亚5800.doc
- 政治 《文化生活选择题精练(三).doc
- 放射科情景教学模构建和评价标准应用初探.doc
- 政治与公共管理学—调研报告—关于邹鲁文化对地方思政教育影响的调研(盛昂).doc
- 白天晚上教学课件.ppt
- 2025年山东菏泽市牡丹区中医医院引进急需紧缺专业技术人才30人笔试模拟试题参考答案详解.docx
- 2025年山东菏泽市牡丹区中医医院引进急需紧缺专业技术人才30人笔试模拟试题带答案详解.docx
- 2025年山东菏泽市牡丹区中医医院引进急需紧缺专业技术人才30人笔试模拟试题及参考答案详解.docx
- 2025年山东菏泽市牡丹区中医医院引进急需紧缺专业技术人才30人笔试模拟试题及参考答案详解一套.docx
- 2025年山东菏泽市牡丹区中医医院引进急需紧缺专业技术人才30人笔试模拟试题及完整答案详解1套.docx
- 2025年山东菏泽市牡丹区中医医院引进急需紧缺专业技术人才30人笔试模拟试题及参考答案详解1套.docx
- 2025年山东菏泽市事业单位招聘急需紧缺岗位目录(第一批)笔试模拟试题参考答案详解.docx
- 2025年山东菏泽市牡丹区中医医院引进急需紧缺专业技术人才30人笔试模拟试题及答案详解1套.docx
- 画西瓜教学课件.ppt
最近下载
- 高中物理万有引力与航天模拟专题.doc VIP
- 《教父(1972)》完整中英文对照剧本.pdf VIP
- ABB喷涂机器人生产节拍提升的改进实施工艺方案.pdf VIP
- 航天电器产品手册y50系列电连接器.pdf VIP
- 2025年广水市城市社区专职工作者招聘85人考试备考试题及答案解析.docx VIP
- 二年级语文暑假习题二.doc VIP
- 房建工程监理实施细则样本合集(207页).docx VIP
- 2018-2024年海峡杯数学竞赛真题及答案(二年级).pdf VIP
- 数据处理与信息共享合作协议.doc VIP
- 2023-2024学年辽宁省实验中学、大连八中、大连二十四中、鞍山一中、东北育才学校高一下化学期末检测试题含解析.doc VIP
文档评论(0)