参考资料--数据结构14章习题答案.doc

参考资料--数据结构14章习题答案.doc

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第1章 概 论 习题参考解答 一、填空题 1、数据的逻辑结构是数据元素之间的逻辑关系,通常有下列4类:( )、( )、( )、( )。 【答】 集合、线性结构、树型结构和图状结构。 2、数据的存储结构是数据在计算机存储器里的表示,主要有4种基本存储方法:( )、( )、( )、( )。 【答】 顺序存储方法、链接存储方法、索引存储方法和散列存储方法。 二、选择题 1、一个算法必须在执行有穷步之后结束,这是算法的( )。 (A)正确性 (B)有穷性 (C)确定性 (D)可行性 【答】 B。 2、算法的每一步,必须有确切的定义。也就是说,对于每步需要执行的动作必须严格、清楚地给出规定。这是算法的( )。 (A)正确性 (B)有穷性 (C)确定性 (D)可行性 【答】 C。 3、算法原则上都是能够由机器或人完成的。整个算法好像是一个解决问题的“工作序列”,其中的每一步都是我们力所能及的一个动作。这是算法的( )。 (A)正确性 (B)有穷性 (C)确定性 (D)可行性 【答】 D。 三、简答题 算法与程序有何异同? 【答】 尽管算法的含义与程序非常相似,但两者还是有区别的。首先,一个程序不一定满足有穷性,因此它不一定是算法。例如,系统程序中的操作系统,只要整个系统不遭受破坏,它就永远不会停止,即使没有作业要处理,它仍处于等待循环中,以待一个新作业的进入。因此操作系统就不是一个算法。其次,程序中的指令必须是计算机可以执行的,而算法中的指令却无此限止。如果一个算法采用机器可执行的语言来书写,那么它就是一个程序。 什么是数据结构?试举一个简单的例子说明。 【答】 数据结构是指数据对象以及该数据对象集合中的数据元素之间的相互关系(即数据元素的组织形式)。例如,队列的逻辑结构是线性表(先进先出);队列在计算机中既可以采用顺序存储也可以采用链式存储;对队列可进行删除、插入数据元素以及判断是否为空队列、将队列置空等操作。 什么是数据的逻辑结构?什么是数据的存储结构? 【答】 数据元素之间的逻辑关系,也称为数据的逻辑结构。数据元素以及它们之间的相互关系在计算机存储器内的表示(又称映象),称为数据的存储结构,也称数据的物理结构。 什么是算法?算法有哪些特性? 【答】 算法是对特定问题求解步骤的一种描述,它是指令的有限序列,其中每一条指令表示一个或多个操作;此外,一个算法还具有下列5个特性: ①有穷性:一个算法必须在执行有穷步之后结束,即算法必须在有限时间内完成。 ②确定性:算法中每一步必须有确切的含义,不会产生二义性。并且,在任何条件下,算法只有唯一的一条执行路径,即对于相同的输入只能得出相同的输出。 ③可行性:一个算法是能行的,即算法中的每一步都可以通过已经实现的基本运算执行有限次得以实现。 ④输入:一个算法有零个或多个输入,它们是算法开始时对算法给出的初始量。 ⑤输出:一个算法有一个或多个输出,它们是与输入有特定关系的量。 四、算法分析题 1、将下列复杂度由小到大重新排序:2n、n!、n2、10000、log2n、n×log2n。 【答】 10000< log2n< n×log2n < n2<2n < n!。 2、用大“O”表示法描述下列复杂度: ⑴ 5n5/2+n2/5 【答】 O(n5/2)。 ⑵ 6×log2n+9n 【答】 O(n)。 ⑶ 3n4+n×log2n 【答】 O(n4)。 ⑷ n×log2n+n×log3n 【答】 O(n×log2n)。 3、设n为正整数,请用大“O”表示法描述下列程序段的时间复杂度。 ⑴ i=1; k=0; ⑵ i=0; k=0; while(i<n) do{k=k+10*i; {k=k+10*i; i++; i++; } }while(i<n); 【答】 O(n)。 【答】 O(n)。 ⑶ i=1; j=0; ⑷ x=n; /*n是常数且n>1*/ while(i+j<=n) while(x>=(y+1)*(y+1)) {if(i>j) j++;

文档评论(0)

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

1亿VIP精品文档

相关文档