- 1、本文档共41页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构课本习题答案.doc
数据结构
绪论
单项选择题
1、(1)A(2)B 2、(1)B(2)D 3、C 4、A 5、A 6、(1)C(2)A 7、(1)C(2)A 8、C 9、C 10、B 11、D
二、填空题
1、存储结构 、算法
2、非线性结构
3、线性、树型、 图形
4、映射
5、线性结构、树型结构 、图形结构
6、有穷性、确定性 、可行性
7、错误
三、算法分析
1、(1)O(n)O(n)(5)O() 、 (6)O(log3n)、 (7) O(log2n)
2、(1) order()函数是一个递归排序过程,设T(n)是排序n个元素所需要的时间。在排序n个元素时,算法的计算时间主要花费在递归调用order()上。第一调用时,处理的元素序列个数为n-1,也就是对余下的n-1个元素进行排序,所需要的计算时间应为T(n-1)。又因为在其中的循环中,需要n-1次比较。所以排序n个元素所需要的时间为:
T(n)=T(n-1)+n-1 n﹥1
据此可得:T(1)=0
T(2)=T(1)+1=0+1=1
T(n)=T(n-1)+n-1 n﹥1
求解过程为:
T(n)=[T(n-2)+(n-2)]+n-1
=[T(n-3)+(n-3)]+(n-2)+n-1
=…
=(T(1)+1)+2+…+ n-1
=0+1+2+…+ n-1
=n(n-1)/2
=O(n2)
故order函数的时间复杂度为O(n2)
(2)解:设fact(n)数是T(n)。该函数中语句If (n≤1),return1;的运行时间是O(1),语句return(n*fact(n-1)); 运行时间是T(n-1)+O(1),其中O(1)为乘法运算的时间。
因此
T(n)=O(1) n≤1
T(n)= T(n-1)+O(1) n>1
则 T(n)=O(1)+T(n-1)
=2*O(1)+T(n-2)
=…
=(n-1)*O(1)+T(1)
=n*O(1)
=O(n)
即fact(n)的时间复杂度为O(n)。
(3)解:设Fn的时间复杂度为T(n),有:
T(n)=T(n-1)+T(n-2)<2T(n-1)
<2T(n-2) <…
<2T(0)
=O(2)
又:T(n)=T(n-1)+T(n-2)>2T(n-2)
>2T(n-4) >…
>2T(1) (n为奇数时,或2T(0),n为偶数时)
即: T(n) > O(2)
则:O(2)<T(n) <O(2)
取最坏情况上限,即T(n) = O(2)。
第二章、线性表
一、单项选择题
1、A 2、B 3、C 4、A 5、D 6、D 7、D 8、B 9、B 10、C 11、A 12、A 13、A 14、D 15、C 16、B 17、B 18、D
二、判断题
1、F 2、T 3、F 4、F 5、F 6、F 7、F 8、F 9、F 10、F
三、填空题
1、顺序
2、n-1/2
3、py→next=px→next; px→next=py;
4、n-i+1
5、(1)便于处理首元结点,使得在创建链表和删除结点时,可以将首元结点与其他结点同等对待。
(2)利用头结点的数据域存储链表的相关信息
6、O(1) O(n)
7、单链表和多重链表 动态链表和静态链表
8、f→next=p→next; f→prior=p; p→next→prior=f; p→next=f;
9、指针
10、物理上相邻 指针
四、简答题
1、(1)由于链式存储结构可以用任意的存储空间来存储线性表中的各数据元素,且其存储空间可以是连续的,也可以是不连续,此外,这种存储结构对元素进行插入和删除操作时都无需移动元素,而仅仅修改指针即可,所以很适用于线性表容量变化的情况。
(2)由于顺序存储结构一旦确定了起始位置,线性表中的任何一个元素都可以进行随机存取,即存取速度较高;并且,由于线性表的总数基本稳定,且很少进行插入和删除,故这一特点恰好避开了顺序存储结构的缺点,因此,应选用顺序存储结构。
2、不一定,由于链式存储需要额外的空间来存储指针,所以要比顺序存储多占用空间。在空间允许的情况下,链式存储结构可以克服顺序存储结构弱点,但空间不允许时,链表存储结构会出现新的问题。
3
文档评论(0)