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

中山大学数据结构期末测试题.docVIP

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
中山大学数据结构期末测试题

《中山大学授予学士学位工作细则》第六条 考试作弊不授予学士学位《》期末试考试时间小时 Vector和list是线性表的两种不同实现。 这两种数据结构各有什么特点,或者更适用于什么样的场合? 答:vector是一种随机存取结构,插入和删除平均需要移动一半的元素;list是顺序存取结构,插入和删除只需要修改指针。或者答:vector适用于元素个数已知,需要随机存取,但是,插入和删除不多的场合。List适用于元素个数未知,随机存取不重要,但是,插入和删除频繁的场合。 (10分)回答下列问题: 将下列函数按照增长顺序(由慢到快)排列  2n, 10n2, 100n, log n, log n3, e10, 15n+100log n, n! 答:e10, log n, log n3, 15n +100log n, 100n, 10n2, 2n, n! 有些同学把2n与n!的增长顺序搞反了。有同学把整个顺序颠倒了。注意题目要求。我们做程序的人皆不可不顾客户的要求,否则,饭碗就被自己砸掉了! 说明下列函数的时间复杂度和空间复杂度(包含过程) int fun(int n) { if (n==0 || n==1) {return 1;} else {return 2 * fun(n-2) +1;} } 答:T(0)=T(1)=1; T(n)=T(n-2) +1= …=T(n-2 *n/2) + n /2= T(0) + n /2=O( n) S(n)为递归深度,即O(n/2). (15分)回答快速排序的有关问题。假定选择最左元素作为支点。 快速排序是不是稳定的?为什么?(举例或者给出证明) 答:不稳定。如,输入1,2,1, 第一次划分后:1,1,2, 也是排序结果,两个1的前后次序已经改变。有同学答“稳定”,不知道从哪里学来的。举例通常找最简单的例子。 快速排序在什么条件下最坏情况发生?试分析最坏情况复杂度。 答:当输入已经有序,划分结果前半部分为空,后半部分有n-1个元素,所以比较次数T(n) = n+T(n-1),解得T(n)=n(n+1)/2=O(n2). 本题和下题均要求做简单分析。 快速排序在什么情况下最好情况发生?试分析最好情况复杂度。 答:最好情况发生在一次划分后前后两部分均约含一半元素,比较次数T(1) = 0, T(0)=0, T(n)=n+2T(n/2) =…= n log n + 2log nT(n/2log n) = nlog n + n = O(nlog n). (10分)假设N(h)表示高度为h的AVL树的最少结点数。假定单根树的高度为0。 试给出N(0), N(1), N(2), N(3)的值。 答: N(0)=1,N(1)=2, N(2)=4, N(3) = 7 给出N(h)的递推公式。 答:N(0)=1, N(1)=2, N(h)=1+N(h-1)+N(h-2) 将关键字cup, cop, copy, hit, hi, his, hig依次插入空AVL树,试画出每次插入结束后的状态。 答:略 (15分)回答下列问题:  二分查找平均时间复杂度是什么?使用二分查找算法的前提条件是什么?实现二分查找应该使用什么数据结构或者存储结构? 答:二分查找平均时间复杂度O(log n). 前提是查找记录按照关键字有序。实现二分查找应该用顺序结构存储。 与二分查找相比较,使用二叉查找树进行查找有什么特点? 答:二分查找的平均时间性能也是O(log n), 但是插入和删除不需要移动元素,适合于动态查找。 假定hash函数为h(k)=k%13,表长为13。.试画出使用平方探查法依次插入15,16,32,67,55,28的hash表,并计算查找76和67的探查次数。 答:hash table 略。查找76和67的探查次数分别是2和4。 (15分)对于图1回答下列问题: 画出图1的邻接表示意图 答: 拓扑排序的一种方法是排其前驱结点已经全部排序的结点。试给出图1的拓扑排序,假定用一个队列存储当前可排序的结点。假定初始堆包含0,4,其中0是队首。 答:0 4 1 6 5 8 9 7 3 2 请写出拓扑排序算法,并在尾部加上一段代码说明图是否存在圈。假定数组indgree[]表示排序过程中各结点的前驱数目。 答:template int graph_size void Digraphgraph_size::breadth_sort(ListVertex topological_order) /* Post: The vertices of the Digraph are arranged into the List topological_order which is found with a b

文档评论(0)

wannian118 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档