数据结构考研试卷 (10)

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

附录 B 三份数据结构考研试题及参考

答案

试题一(满分75)

一、单项选择题(2×10分,共20分)

1.某算法的时间复杂度为O(n2),表明该算法的_.

A.问题规模是n2

B.执行时间等于n2

C.执行时间与n2成正比

D.问题规模与n2成正比

2.设线性表有n个元素,以下操作中,_在顺序表上实现比在链表上实现效率更高.

A.输出第i(1≤i≤n)个元素值

B.交换第1个元素与第2个元素的值

C.顺序输出这n个元素的值

D.输出与给定值x相等的元素在线性表中的序号

3.设n个元素进栈序列是1,2,3,…,n,其输出序列是p1,p2,…p n,若p1=3,则p2的值_.

A.一定是2

B.一定是1

C.不可能是1

D.以上都不对

4.设循环队列中数组的下标是0~N-1,其头尾指针分别为f(指向队头元素的前一位置)和r(指向队尾元素的位置),则其元素个数为_.

A.r-f

B.r-f-1

C.(r-f)%N+1

D.(r-f+N)%N

5.若串s=’abcefgh’,其子串(含空串和自身)的个数是_.

A.8

B.37

C.36

D.9

6.若将n阶上三角矩阵A按列优先顺序压缩存放在一维数组B[1..n(n+1)/2]中,第一个非零元素a11存放于B[1]中,则应存放到B[k]中的非零元素a ij(1≤i≤n;1≤j≤i)的下标i,j 与k的对应关系是k=( )。

A.i(i+1)/2+j

B. i(i-1)/2+j-1

C. j(j+1)/2+I

D. j(j-1)/2+i-1

7. 设高度为h(根结点为第1层)的二叉树上只有度为0和度为2的结点,则此类二叉

树中所包含的结点数至少为( ).

A. 2h

B.2h-1

C.2h+1

D.h+1 8. 无向图的邻接矩阵是一个( )。 A. 对称矩阵 B.零矩阵 C.上三角矩阵 D.对角矩阵 9. 对线性表进行二分查找时,要求线性表必须( )。 A. 以顺序表方式存储 B. 以链接方式存储

C. 以顺序方式存储,且结点按关键字有序排序

D. 以链式方式存储,且结点按关键字有序排序 10. 以下排序算法中,( )不能保证每趟排序至少能将一个元素放到其最终位置上。

A. 快速排序

B.希尔排序

C.堆排序

D.冒泡排序

二、问答题(共30分)

1. 有5个字符,根据其使用频率设计对应的哈弗曼编码,以下哪些可能的哈弗曼编码。(8分)

(1)000,001,010,011,1 (2)0000,0001,001,01,1 (3)000,001,01,10,11 (4)00,100,101,110,111

2. 一个有向图G 的邻接表存储如图B.1所示,现按深度优先搜索遍历,从顶点1出发,所得到的顶点时什么?(5分)

v1 v2 v3 v4 ∧ v5

3. 已知一个有序表为(12,18,20,25,29,32,40,62,83,90,95,98),当二分查找值为29和90时,分别需要多少次比较才能查找成功?若采用顺序查找时,分别需要多少次比较才能查找成功?(8分)

4. 按13、24、37、90、53的次序形成二叉平衡树,回答以下问题:(9分) (1)该二叉平衡树的高度是多少? (2)其根结点是谁?

(3)左子树中的数据是什么? (4)右子树种的数据是什么? 三=算法设计题(共25分)

设计一个算法int increase(LinkList * L),判定带头结点单链表L 是否是递减的,若是返回1,否则返回0.(10分)

假如二叉树采用二叉链存储结构存储,试设计一个算法,输出该二叉树种第一条最长的路径长度,并输出此路径上各结点的值。(15分)

试题一参考答案

2 3 3 ∧

4 ∧

5 ∧ 5 ∧ 4 1 2 3 4

5

图B. 1 一个有向图G 的邻接表

一、1. C 2. A 3. C 4. D 5. B 6. D 7. B 8. A 9. C 10. B 二、1. 答:哈夫曼树中只有度为0或2的结点,(4)不满足这种条件,可能的哈夫码编码为(1)、(2)和(3)。

2. 答:1,2,3,5,4。

3. 答:由二分查找法得到的二分查找判定树如图B.2所示。二分查找值为29和90时,分别需要4次比较才能查找成功。若采用顺序查找时,分别需要3次和10次比较才能查找成功。

4. 答:形成二叉平衡树的过程如图B. 所示。本题答案为:(1)3 (2)24 (3){13} (4){37,53,90}(顺序无关)。

三、1. 解:判定链表L 从第二个结点开始的每个结点的值是否比其前趋的值小。若有一个不成立,则整个链表便不是递减的;否则是递减的。算法如下:

int increase(LinkList , *L)

{ LinkList *p=L->next,*p; if(p!=NULL)

{ while(p->next!=NULL) { q=p->next;

if(q->data<=p->data) p=q; else

32 83

20 12 25 29 18 40 62 95

98 90

图B. 2一棵判定树 13 13 24 13 24 RR 37 13

24

37

90

24

37

13

90

53

53

24

37

13

90 RL

24 37 13 24

53

13

90

37

图B. 3 构造一棵平衡二叉树

相关文档
最新文档