山东财经大学 - 数据结构试题 下载本文

9.设在一棵度数为3的树中,度数为3的结点数有2个,度数为2的结点数有1个,度数为1的结点数有2个,那么度数为0的结点数有( )个。 (A) 4

(B) 5

(C) 6

(D) 7

10.设完全无向图中有n个顶点,则该完全无向图中有( )条边。 (A) n(n-1)/2

(B) n(n-1)

(C) n(n+1)/2

(D) (n-1)/2

11.设顺序表的长度为n,则顺序查找的平均比较次数为( )。 (A) n

(B) n/2

(C) (n+1)/2

(D) (n-1)/2

12.设有序表中的元素为(13,18,24,35,47,50,62),则在其中利用二分法查找值为24的元素需要经过( )次比较。 (A) 1

(B) 2

(C) 3

(D) 4

13.设顺序线性表的长度为30,分成5块,每块6个元素,如果采用分块查找,则其平均查找长度为( )。 (A) 6

(B) 11

(C) 5

(D) 6.5

14.设有向无环图G中的有向边集合E={<1,2>,<2,3>,<3,4>,<1,4>},则下列属于该有向图G的一种拓扑排序序列的是( )。 (A) 1,2,3,4

(B) 2,3,4,1 (C) 1,4,2,3 (D) 1,2,4,3

15.设有一组初始记录关键字序列为(34,76,45,18,26,54,92),则由这组记录关键字生成的二叉排序树的深度为( )。 (A) 4

二、填空题(30分)

1. 设指针p指向单链表中结点A,指针s指向被插入的结点X,则在结点A的前面插入结

点X时的操作序列为:

1) s->next=___________;2) p->next=s;3) t=p->data; 4) p->data=___________;5) s->data=t;

2. 设某棵完全二叉树中有100个结点,则该二叉树中有______________个叶子结点。 3. 设某顺序循环队列中有m个元素,且规定队头指针F指向队头元素的前一个位置,队

尾指针R指向队尾元素的当前位置,则该循环队列中最多存储_______队列元素。 4. 对一组初始关键字序列(40,50,95,20,15,70,60,45,10)进行冒泡排序,则

第一趟需要进行相邻记录的比较的次数为__________,在整个排序过程中最多需要进行__________趟排序才可以完成。

29

(B) 5 (C) 6 (D) 7

5. 在堆排序和快速排序中,如果从平均情况下排序的速度最快的角度来考虑应最好选择

_________排序,如果从节省存储空间的角度来考虑则最好选择________排序。 6. 设一组初始记录关键字序列为(20,12,42,31,18,14,28),则根据这些记录关键

字构造的二叉排序树的平均查找长度是_______________________________。 7. 设一棵二叉树的中序遍历序列为BDCA,后序遍历序列为DBAC,则这棵二叉树的前序序

列为____________________。

8. 设用于通信的电文仅由8个字母组成,字母在电文中出现的频率分别为7、19、2、6、

32、3、21、10,根据这些频率作为权值构造哈夫曼树,则这棵哈夫曼树的高度为________________。

9. 设一组记录关键字序列为(80,70,33,65,24,56,48),则

用筛选法建成的初始堆为_______________________。 10. 设无向图G(如右图所示),则其最小生成树上所有边的权值之

和为_________________。

三、判断题(20分)

1. 有向图的邻接表和逆邻接表中表结点的个数不一定相等。( ) 2. 对链表进行插入和删除操作时不必移动链表中结点。( ) 3. 子串“ABC”在主串“AABCABCD”中的位置为2。( )

4. 若一个叶子结点是某二叉树的中序遍历序列的最后一个结点,则它必是该二叉树的先序

遍历序列中的最后一个结点。( ) 5. 希尔排序算法的时间复杂度为O(n)。( )

6. 用邻接矩阵作为图的存储结构时,则其所占用的存储空间与图中顶点数无关而与图中边

数有关。( )

7. 中序遍历一棵二叉排序树可以得到一个有序的序列。( )

8. 入栈操作和入队列操作在链式存储结构上实现时不需要考虑栈溢出的情况。( ) 9. 顺序表查找指的是在顺序存储结构上进行查找。( ) 10.堆是完全二叉树,完全二叉树不一定是堆。( )

五、算法设计题(20分)

1. 设计计算二叉树中所有结点值之和的算法。

30

2

2. 设计将所有奇数移到所有偶数之前的算法。 3. 设计判断单链表中元素是否是递增的算法。

31

数据结构试卷(十)

一、选择题(24分)

1.下列程序段的时间复杂度为( )。

i=0,s=0; while (s

1/2

(B) O(n)

1/3

(C) O(n) (D) O(n)

2

2.设某链表中最常用的操作是在链表的尾部插入或删除元素,则选用下列( )存储方式最节省运算时间。 (A) 单向链表 (C) 双向链表

(B) 单向循环链表 (D) 双向循环链表

3.设指针q指向单链表中结点A,指针p指向单链表中结点A的后继结点B,指针s指向被插入的结点X,则在结点A和结点B插入结点X的操作序列为( )。 (A) s->next=p->next;p->next=-s; (B) q->next=s; s->next=p; (C) p->next=s->next;s->next=p; (D) p->next=s;s->next=q;

4.设输入序列为1、2、3、4、5、6,则通过栈的作用后可以得到的输出序列为( )。 (A) 5,3,4,6,1,2 (C) 3,1,2,5,4,6

(B) 3,2,5,6,4,1 (D) 1,5,4,6,2,3

5.设有一个10阶的下三角矩阵A(包括对角线),按照从上到下、从左到右的顺序存储到连续的55个存储单元中,每个数组元素占1个字节的存储空间,则A[5][4]地址与A[0][0]的地址之差为( )。 (A) 10

(B) 19

(C) 28

(D) 55

6.设一棵m叉树中有N1个度数为1的结点,N2个度数为2的结点,??,Nm个度数为m的结点,则该树中共有( )个叶子结点。 (A)

?(i?1)Ni?1mi (B)

?Ni?1mi (C)

?Ni?2mi (D) 1??(i?1)Ni?2mi

7. 二叉排序树中左子树上所有结点的值均( )根结点的值。 (A) <

(B) >

(C) =

(D) !=

8. 设一组权值集合W=(15,3,14,2,6,9,16,17),要求根据这些权值集合构造一棵哈夫曼树,则这棵哈夫曼树的带权路径长度为( )。

32