数据结构试题-附答案

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

一、选择题

1、在数据结构的讨论中把数据结构从逻辑上分为()

A )内部结构与外部结构 B)静态结构与动态结构

C )线性结构与非线性结构

D )紧凑结构与非紧凑结构。

2、对线性表进行二分查找时,要求线性表必须()。

A. 以链接方式存储,且数据元素有序

B. 以链接方式存储

C. 以顺序方式存储,且数据元素有序

D. 以顺序方式存储

3、若长度为n的线性表采用顺序存储结构存储,在第i个位置上插入一个新元素的时间复杂度为()A)O(n) B)O(1) C)O(n2) D)O(n3)

4、顺序循环队列中(数组的大小为6),队头指示front和队尾指示rear的值分别为3和0,当从队列中删除1个元素,再插入2个元素后,front和rear的值分别为()

A)5和1 B)2和4 C)1和5 D)4和2

5.在下列排序方法中,()的比较次数与记录的初始排列状态无关。

A. 直接插入排序

B. 起泡排序

C. 快速排序

D. 简单选择排序

6、设有数组A[i,j],数组的每个元素长度为3字节,i的值为1到8,j的值为1到10,数组从内存首地址BA开始顺序存放,当以列为主序存放时,元素A[5,8]的存储首地址为( )

A)BA+41 B)BA+180 C)BA+222 D)BA+225

7、下面哪个术语与数据的存储结构无关()

A)顺序表B)链表C)散列表D)队列

8、在一棵高度为k的满二叉树中,结点总数为()

A)2k-1 B)2k C)2k-1D)⎣log2k⎦+1

9、一棵完全二叉树上有1 001个结点,其中叶子结点的个数为()

A)250 B)500 C)254 D)501

10、利用二叉链表存储树,则根结点的右指针是()

A)指向最左孩子 B)指向最右孩子 C)空 D)非空

11、若邻接表中有奇数个边结点,则一定()

A)图中有奇数个顶点B)图中有偶数个顶点C)图为无向图D)图为有向图

12、无向图G=(V,E),其中:V={a,b,c,d,e,f},E={(a,b),(a,e),(a,c),(b,e),(c,f),(f,d),(e,d)},对该图进行深度优先遍历,得到的顶点序列正确的是()

A)abecdf B)acfebd C)aebcfd D)aedfcb

13、在一个带权连通图G中,权值最小的边一定包含在G的()

A)最小生成树中B)深度优先生成树中C)广度优先生成树中D)深度优先生成森林中

14、已知含10个结点的二叉排序树是一棵完全二叉树,则该二叉排序树在等概率情况下查找成功的平均查找长度等于()

A)1.0 B)2.9 C)3.4 D)5.5

15、下面的序列中初始序列构成最小堆(小根堆)的是()

A)10、60、20、50、30、26、35、40 B)70、40、36、30、20、16、28、10

C)20、60、50、40、30、10、8、72 D)10、30、20、50、40、26、35、60

二、应用题

1、已知一棵度为m的树中有n1个度为1的结点,n2个度为2的结点,……,n m个度为m的结点,问该树中有多少个叶子结点?要求写出分析过程。

2、已知一棵二叉树的中序遍历的结果为ABCEFGHD,后序遍历的结果为ABFHGEDC,试画出此二叉树。

3、设用于通信的电文由8个字母组成,字母在电文中出现的频率分别为:7,19,2,6,32,3,21,10。试为这八个字母设计哈夫曼编码,并求出总码长。

4、对于下图,从顶点V0出发,按照普里姆算法求出它的最小生成树,画出求解过程。

5、设散列表长度为11,散列函数H(x) = x%11,给定的关键字序列为1,13,12,34,38,33,27,22。试画出分别用拉链法和线性探测法解决冲突时所构造的散列表,并求出在等概率的情况下,这两种方法查找成功时的平均查找长度。

6、对下面关键字序列,写出采用希尔排序算法进行排序的每一趟的结果。其中增量序列的取值为{5,3,1}。(125,11,22,34,15,44,76,66,100,8,14,20,2,5,1)

三、编程题

注意:先进行类型定义,再写算法。

1、已知一个顺序表中的各结点值是从小到大有序的,设计一个算法,插入一个值为x的结点,使顺序表中的结点仍然是从小到大有序(不考虑空间不够用的情况)。

2、设计一个算法,判断一个单链表中的各个结点值是否递增有序(带头结点的单链表)。

3、编写一个函数,求一棵给定二叉树中叶子结点的个数(提示:采用任何一种遍历方法都可以)。

V1

7

8

6

4

8

7

3

1

V0

V2

V5 V3

V4

线

第3页 共3页

一、 选择

CCADB BDCDC DDABD 二、

1、设叶子个数为x

总度数=n 1+2*n 2+3*n 3+…+m*n m 结点总数=n 1+n 2+…+n m +x 而结点总数=总度数+1

则x=1+n 2+2*n 3+…+(m-1)*n m 2、

3、哈夫曼树的构造过程如下:

假设八个字母分别为A 、B 、C 、D 、E 、F 、G 、H ,则这八个字母对应得编码为: A ——1010 B ——00 C ——10000 D ——1001 E ——11 F ——10001 G ——01 H ——1011

WPL=(19+21+32)*2+(6+7+10)*4+(2+3)*5=261

2 3

5 2 3

5

6

11

10

7 17

28 2 3

5

6

11

10

7 17

21

19 40

28

2

3

5

6

11

10

7 17

32

60

28

2

3

5

6

11

10

7 17

32

60

21

19 40

100

C

A B D E

G F H

相关文档
最新文档