数据结构期末习题答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章绪论
一,选择题
1.组成数据的基本单位是()
A.数据项B.数据类型C.数据元素D.数据变量
2.数据结构是研究数据的()以及它们之间的相互关系。
A.理想结构,物理结构B.理想结构,抽象结构
C.物理结构,逻辑结构D.抽象结构,逻辑结构
3.算法分析的两个主要方面是()
A.正确性和简单性B.可读性和文档性
C.数据复杂性和程序复杂性D.时间复杂度和空间复杂度
4.算法分析的目的是()。
A.找出数据结构的合理性B.研究算法中的输入和输出的关系
C.分析算法的效率以求改进D.分析算法的易懂性和文档性
5. 算法的时间复杂度取决于()
A.问题的规模 B. 待处理数据的初态 C. A和B D.以上都不是
6.一个算法应该是()。
A.程序 B.问题求解步骤的描述 C.要满足五个基本特性 D.A和C.
7. 下面关于算法说法错误的是()
A.算法最终必须由计算机程序实现
B.为解决某问题的算法同为该问题编写的程序含义是相同的
C. 算法的可行性是指指令不能有二义性
D. 以上几个都是错误的
8.从逻辑上可以把数据结构分为()两大类。
A.动态结构、静态结构 B.顺序结构、链式结构
C.线性结构、非线性结构 D.初等结构、构造型结构
9.程序段 for ( i=n-1;i>=1;i--)
for (j=1j<=i;j++)
if( A[j]>A[j+1])
A[j]与A[j+1]对换;
其中 n为正整数,则最后一行的语句频度在最坏情况下是()
A.O(n)B.O(nlogn) C..O(n3) D.O(n2)
10.连续存储设计时,存储单元的地址()。
A.一定连续 B.一定不连续 C.不一定连续 D.部分连续,部分不连续
二,判断题
1.数据结构的抽象操作的定义与具体实现有关。( )
2.数据结构是数据对象与对象中数据元素之间关系的集合。
3.在顺序存储结构中,有时也存储数据结构中元素之间的关系。( )
4.数据的逻辑结构是指各数据元素之间的逻辑关系,是用户按使用的需要建立的。
5.算法和程序原则上没有区别,在讨论数据结构是两者是通用的。
6.同一数据逻辑结构中的所有数据元素都具有相同的特性是指数据元素所包含的数据项的个数都相等。
7.数据的逻辑结构与数据元素本身的内容和形式无关。
8.算法的优劣与算法描述语言无关,但与所用计算机有关。( )
9.健壮的算法不会因非法的输入数据而出现莫名其妙的状态。( )
10.算法可以用不同的语言描述,如果用C 语言或PASCAL语言等高级语言来描述,则算法实际上就是程序了。( )
二,判断题
三,填空
1.数据的物理结构包括的表示和的表示。
2. 对于给定的n个元素,可以构造出的逻辑结构有,,,__ _四种。3.一个数据结构在计算机中称为存储结构。
4.抽象数据类型的定义仅取决于它的一组__ _,而与_ _无关,即不论其内部结构如何变化,只要它的_ _不变,都不影响其外部使用。
5.线性结构中元素之间存在关系,树形结构中元素之间存在关系,图形结构中元素之间存在关系。
6.一个算法有5个特性: 、、,有零个或多个输入、有一个或多个输出。7.已知如下程序段
for (i= n;i<=1;i++){语句1}
{
x:=x+1;{语句2}
for( j=n;j<=i ;j++) {语句3}
y:=y+1; {语句4}
}
语句1执行的频度为;语句2执行的频度为;语句3执行的频度为;语句4执行的频度为。
8.在下面的程序段中,对x的赋值语句的频度为______(表示为n的函数)
for(i=1;i<=n;i++)
for(j=1;j<=i;j++)
for(k=1;k<=j;j++)
x=x+delta;
9. 计算机执行下面的语句时,语句s的执行次数为 _______ 。
for(i=l;i for(j=n;j>=i;j--) s; 10. 下面程序段的时间复杂度为________。(n>1) sum=1; for (i=0;sum 三,填空题 1.数据元素数据元素间关系 2.集合线性结构树形结构图状结构或网状结构 3.表示(又称映像)。 4.逻辑特性在计算机内部如何表示和实现数学特性 5.一对一一对多多对多 6.有穷性确定性可行性 7. n+1 n n(n+3)/2 n(n+1)/2 8.1+(1+2++(1+2+3)+…+(1+2+…+n)=n(n+1)(n+2)/6 O(n3) 9. (n+3)(n-2)/2 10. O(n) 四,应用题 1.什么是数据? 它与信息是什么关系? 2.什么是数据结构? 数据结构是研究什么内容的学科?有关数据结构的讨论涉及哪三方面? 3.评价一个好的算法,从哪几方面考虑? 4. 若将数据结构定义为一个二元组(D,R),说明符号D,R 应分别表示什么? 5.解释算法与程序的区别? 6.有下列几种用二元组表示的数据结构,画出它们分别对应的逻辑图形表示,并指出它们分别属于何种结构。 (1)A=(K,R),其中: K={a,b,c,d,e,f,g} R={r} r={〈a,b〉,〈b,c〉,〈c,d〉,〈d,e〉,〈e,f〉,〈f,g〉} (2)B=(K,R),其中: K={a,b,c,d,e,f,g,h} R={r} r={〈d,b〉,〈d,g〉,〈d,a〉,〈b,c〉,〈g,e〉,〈g,h〉,〈a,f〉} (3)C=(K,R),其中: K={1,2,3,4,5,6} R={r} r={(1, 2),(2, 3),(2,4),(3,4),(3,5),(3,6),(4,5),(4,6)} 这里的圆括号对表示两结点是双向的。 7.分析以下程序段的时间复杂度。 (1) a=0;b=1;① for(i=2;i〈=n;i++)② { s=a+b;③ b=a;④ a=S;⑤ } (2) inti,j,k; for(i=0;i〈n;i++〉① for(j=0;j〈n;j++〉② {