数据结构期末试卷(武汉理工大学)

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

一、选择题(答案不唯一可多选,26分,每空2分)

1.下列各项中属于逻辑结构的有。

A. 哈希表

B. 有序表

C. 单链表

D. 顺序表

2.由3个结点组成的二叉树的深度可能是。

A.1 B.2 C.3 D.4

3.将一个a[100][100]的三对角矩阵以行主序存入一维数组B[298]中,元素a[65][64]在B数组中的位置k等于。

A.198 B.197 C.196 D.195

4.一棵满二叉树同时又是一棵。

A. 完全二叉树

B. 二叉排序树C . 正则二叉树D. 平衡二叉树

5.长度为n的顺序表,在任何位置上插入或删除一个元素的概率相等,插入一个元素时平均移动个元素,删除一个元素时平均移动个元素。

A.(n+1)/2 B.n/2 C.(n-1)/2 D.(n-2)/2

6. 用s表示入栈操作,*表示出栈操作,栈的初态、终态均为空,入栈和出栈的操作序列可表示成仅为由s 和*组成的序列。下面的序列中合法的操作序列有。

A.s*ss*s** B.sss**s** C. s**s*ss* D.sss*s*s*

7. 是特殊的线性表。

A.队列B.哈希表C.栈D.判定表

8. 表长为25的哈希表,用除留余数法公式H(key)=key % p 或H(key)=key mod p,

则p应取为宜。

A.23

B.24

C.25

D.26

9.任一个有向图的拓扑序列。

A.可能不存在

B.有一个

C. 一定有多个

D.有一个可多个

10.在下列的排序方法中,方法可能出现这种情况:在最后一趟开始之前,所有的元素都不在其最终应在的正确位置上。

A.快速排序

B. 冒泡排序

C.堆排序

D. 插入排序

11.若以{4,5,6,7,8}作为权值构造Huffmen树,则该树的带权路径长度为。

A.67

B.68

C.69

D.70

12.设head(L)、tail()分别为取广义表表头和表尾的操作,则从广义表L=((x,y,z),a,(u,v,w))中取出原子u 的运算为。

A.head(tail(tail(head(L))))

B.tail(head(head(tail(L))))

C.head(tail(head(taill(L))))

D.head(head(tail(tail(L))))

二、填空题(共32分,每空2分)

13.在单链表中设置头结点和作用是__________________ 。

14.线索二叉树的左线索指向其___________ ,右线索指向其___________。

15.树在计算机内的链式存存储表示方法有___________、___________和___________。

16.__________________ 现象称为冲突。

17.用(A,B)的形式表示边,对图1的无向图,从项点A开始求最小生成树,用

Prim算法产生的边依次是________________ __,用Kruskal算法产生的边依次是__________________ 。

18.用数组a[1]..a[n]表示循环队列sq,当循环队列sq满时,队中共有__________个元素。

19.判定树常用来表示____________的查找过程。

20.直接插入排序、堆排序算法的时间复杂度分别是__________ 、____________ 。

21.树根的层次是1,则深度为8的完全二叉树至少有_____________ 个结点,拥有100个结点的完全二叉树的最大层次数是___________ 。

22.对n个记录进行2-路归并排序,一共需要进行_____________趟归并。

三.简答题(47分)

23.(6分)有5个元素,其入栈次序为A,B,C,D,E,在各种可能的出栈序列中,第一个出栈元素是C且第二个出栈元素是D的出栈序列有哪几个?

24.(12分)一棵树的边的集合为{ (I,M), (I,N), (E,I), (B,E), (B,D), (C,B), (G,J), (G,K),

(A,G), (A,F), (H,L),(A,H),(C,A) }。

(1)画出这棵树。

(2)哪个是根结点?哪些是叶子?

(3)树的深度是多少?

(4)将此树转化为相应的二叉树。

(5)将转化所得的二叉树进行后序穿线,建立后序线索树。

25.(7分)用十字链表存储稀疏矩阵的非零元,画出存放非零元的结点的结构图,并说明结点中各个域中分别存放什么内容?

26.(12分)对n个结点的有向图,采用邻接矩阵和邻接表表示时,如何判断下列问题:

(1)图中有多少条边?

(2)任意两个顶点i和j是否有边相连?

(3)任意一个顶点的度是多少?

27.(10分)依次输入序列(62, 68, 30, 61, 25, 14, 53, 47, 90, 84)中的元素,生成一棵二叉排序树。四.算法设计(45分,每小题15分)

要求:①用C语言、类C语言或类Pascal语言编写算法;

②应对算法中使用的数据类型给出必要的说明和注释。

28.用带头结点的循环链表作为队列的存储表示,不设头指针而只设一个尾指针rear指向队尾结点。试写了该链式队列的出队算法。

29.二叉树采用二叉链作为存储结构,写一递归算法计算二叉树的深度。

30.已知(r1, r2, ……, rn) 是一个小顶堆,写一算法,使得增加一个元素rn +1后(r1, r2, ……, rn,rn +1)仍是一个堆。

相关文档
最新文档