数据结构课程课后习题答案.doc

  1. 1、本文档共69页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《数据结构简明教程》练习题及参考答案 练习题1 单项选择题 线性结构数据元素之间A.一对多B.多对多C.多对一D.一对一 数据结构中与所使用的计算机无关的是数据的结构A.存储B.物理C.逻辑D.物理和存储 算法分析的目的是A.找出数据结构的合理性B.研究算法中的输入和输出的关系 C.分析算法的效率以求改进D.分析算法的易懂性和文档性 算法分析的两个主要方面是 A.空间复杂性和时间复杂性B.正确性和简明性 C.可读性和文档性D.数据复杂性和程序复杂性 计算机算法指的是A.计算方法B. 排序方法C.求解问题的有限运算序列D.调度方法 计算机算法必须具备输入、输出和等5个特性。 A.可行性、可移植性和可扩充性B.可行性、确定性和有穷性 C.确定性、有穷性和稳定性D.易读性、稳定性和安全性 填空题 数据结构包括数据的 、数据的 和数据的 这三个方面的内容。逻辑结构存储结构运算数据结构按逻辑结构可分为两大类,它们分别是 和 。 线性结构非线性结构数据结构被形式地定义为(D,R),其中D是 的有限集合,R是D上的 有限集合。 数据元素关系在线性结构中,第一个结点 前驱结点,其余每个结点有且只有1个前驱结点;最后一个结点 后结点,其余每个结点有且只有1个后结点。 没有没有在树形结构中,树根结点没有 结点,其余每个结点有且只有 个前驱结点;叶子结点没有 结点,其余每个结点的后结点数可以 。 前驱后任意多个在图形结构中,每个结点的前驱结点数和后继结点数可以。任意多个数据的存储结构四种,它们分别是 、 、 和 顺序 链式 索引 (8)一个算法的效率可分为 效率和 效率。时间空间简答题 数据结构和数据类型两个概念之间有区别吗? 简单地说,数据结构定义了一组按某些关系结合在一起的数组元素。数据类型不仅定义了一组数据元素,而且还在其上定义了一组操作。 简述线性结构、树形结构和图形结构的不同点。 线性结构反映结点间的逻辑关系是一对一的,树形线性结构反映结点间的逻辑关系是一对多的,图在结构反映结点间的逻辑关系是多对多的。 设有数据逻辑结构S=D,R),D={a,b,…,i},R={(a,b),(a,c),(c,d),(c,f),(f,h),(d,e),(f,g),(h,i)},问相对于关系R,哪些结点是开始结点,哪些结点是终端结点?逻辑结构为树形结构a结点没有前驱根结点b、e、g、i结点没有后继是终端结点叶子结点T1(n)=nlog2n-1000log2n T2(n)=-1000log2n T3(n)=n2-1000log2n T4(n)=2nlog2n-1000log2n 答:T1(n)=O(nlog2n),T2(n)=O( ),T3(n)=O(n2),T4(n)=O(nlog2n)。 (5)分析下面程序段中循环语句的执行次数。 int j=0,s=0,n=100; do { j=j+1; s=s+10*j; } while (j<n && s<n); 答:j=0,第1次循环:j=1,s=10。第2次循环:j=2,s=30。第3次循环:j=3,s=60。第4次循环:j=4,s=100。while条件不再满足。所以,其中循环语句的执行次数为4。 (6)执行下面的语句时,语句s++的执行次数为多少? int s=0; for (i=1;i<n-1;i++) for (j=n;j>=i;j--) s++; 答:语句s的执行次数。 (7)设n为问题规模,求以下算法的时间复杂度。 void fun1(int n) { int x=0,i; for (i=1;i<=n;i++) for (j=i+1;j<=n;j++) x++; } 答:其中x++语句属基本运算语句,=O(n2)。 (8)设n为问题规模,是一个正偶数,试计算以下算法结束时m的值,并给出该算法的时间复杂度。 void fun2(int n) { int m=0; for (i=1;i<=n;i++) for (j=2*i;j<=n;j++) m++; } 答:由于内循环j的取值范围,所以i≤n/2,则,该程序段的时间复杂度为O(n2)。 上机实验题1 有一个整型数组a,其中含有n个元素,设计尽可能好的算法求其中的最大元素和次大元素,并采用相关数据测试。 解:maxs算法用于返回数组a[0..n-1]中的最大元素值max1和次大元素值max2,max1和max2设计为引用类型。对应的程序如下: #include <stdio.h> void maxs(int a[],int n,int &max1,int &max2) { int i; max1=max2=a[0]; for (i=1;i<n;i++) if (a[i]

您可能关注的文档

文档评论(0)

宝贝计划 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档