20101月数据结构答案、解析

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

做试题,没答案?上自考365,网校名师为你详细解答!

全国2010年1月自学考试数据结构试题

课程代码:02331

一、单项选择题(本大题共15小题,每小题2分,共30分)

在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。

1.若一个算法的时间复杂度用T(n)表示,其中n的含义是()

A.问题规模B.语句条数

C.循环层数D.函数数量

答案:A

解析:常识问题

2.具有线性结构的数据结构是()

A.树B.图

C.栈和队列D.广义表

答案:C

解析:顺序表、单链表、双链表、循环链表、栈和队列等都是1:1关系,是线性的。

树:结点之间1:n关系,非线性的。广义表和图是m:n关系,非线性的。

3.将长度为n的单链表连接在长度为m的单链表之后,其算法的时间复杂度为()

A.O(1) B.O(m)

C.O(n) D.O(m+n)

答案:B

解析:链表A与链表B连接问题,可以这样考虑,链表A和链表B,我们只知道其头指针或头结点,我们连接是把链表A的尾部连接到链表B的头部,要知道链表A的尾部,就必须从链表A的头部做m次判断,得到链表A的尾部,然后直接和链表B的头部连接就可以了。(原来链表A的尾部是指向NULL的,连接链表B就是把链表A尾部的NULL改为链表B的头结点的指针。)

4.在带头结点的双向循环链表中插入一个新结点,需要修改的指针域数量是()

A.2个B.3个.

C.4个D.6个

答案:C

解析:双向循环链表中结点与结点之间有4条线,所以插入一个新结点,需要修改指针域的数量为4条。5.假设以数组A[60]存放循环队列的元素,其头指针是front=47,当前队列有50个元素,则队列的尾指针值为()

A.3 B.37

C.50 D.97

答案:B

解析:循环队列,front=47,则rear=(front+队列元素个数)%数组长度=(47+50)%60=37。

6.若栈采用链式存储结构,则下列说法中正确的是()

A.需要判断栈满且需要判断栈空

B.不需要判断栈满但需要判断栈空

C.需要判断栈满但不需要判断栈空

D.不需要判断栈满也不需要判断栈空

答案:B

解析:链栈由于采用链表方式作为存储方式,入栈时,使用malloc申请空间后,用指针相连接,所以结点个数没有限制,但是出栈时,如果栈中的元素个数为0,就不能再出栈了。

7.若串str=”Software”,其子串的数目是()

A.8 B.9

C.36 D.37

答案:D

解析:字串包括:单字符的字串:”S”、”o”等共8个,2个字符的字串”So”、”of”共7个,3个字符的字串”Sof”、”oft”等共6个,以此类推,可以知道总数量S=8+7+6+5+4+3+2+1=(1+8)*8/2=36。最后别忘记了,空串””是任何字符串的字串,所以S=36+1=37.

结论:求字符串的子串个数公式:S=(1+字符串长度)* 字符串长度/2+1

8.设有一个10阶的下三角矩阵A,采用行优先压缩存储方式,a ll为第一个元素,其存储地址为1000,每个元素占一个地址单元,则a85的地址为()

A.1012 B.1017

C.1032 D.1039

答案:C

解析:按行优先压缩,每一行10个元素。又由于下标从1开始且是下三角,所以a85的前7行共有1+2+3+4+5+6+7=(1+7)*7/2=28个元素,第8行不满,列5前有5-1=4个元素,所以a85前共有28+4=32个元素。又由于每个元素占一个地址单元,所以a85的地址=a11+32个元素的地址增量=1000+32*1=1032。9.允许结点共享的广义表称为()

A.纯表B.线性表

C.递归表D.再入表

答案:D

解析:没有共享结点,没有递归结点的表是纯表。有共享结点的表是再入表,有递归结点的表是递归表。10.下列数据结构中,不属于二叉树的是()

A.B树B.AVL树

C.二叉排序树D.哈夫曼树

答案:A

解析:根据概念可以得到答案。

11.对下面有向图给出了四种可能的拓扑序列,其中错误

..的是()

A.1,5,2,6,3,4 B.1,5,6,2,3,4

C.5,1,6,3,4,2 D.5,1,2,6,4,3

答案:C

解析:根据先找没有前驱的结点的方式,找到没有前驱的结点后,后删除该结点上的连线,可以推出C是错误的。

12.以v1为起始结点对下图进行深度优先遍历,正确的遍历序列是()

A.v1,v2,v3,v4,v5,v6,v7 B.v1,v2,v5,v4,v3,v7,v6

C.v1,v2,v3,v4,v7,v5,v6 D.v1,v2,v5,v6,v7,v3,v4

答案:D

解析:从V1出发,根据标号最小原则,深度遍历后,容易得出D是正确的。

具体遍历方式为:V1->v2->v5->v6,v6没有出度,返回v5,v5->v7,v7没有出度,返回v5,v5的2个出度(v6和v7)都已经遍历,返回v2,v2的2个出度(v5和v6)都已经遍历,返回v1,v1->v3,v3没有出度,返回v1,v1->v4,所以最后的遍历序列为v1->v2->v5->v6->v7->v3->v4。

13.下列排序算法中不稳定的是()

A.快速排序B.归并排序

C.冒泡排序D.直接插入排序

答案:A

解析:稳定的排序算法共有4个,直插、冒泡、归并、基数,其他的都是不稳定的。

14.一个有序表为(1,3,9,12,32,41,45,62,75,77,82,95,100),当采用折半查找方法查找值32时,查找成功需要的比较次数是()

相关文档
最新文档