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

1. 设有n个无序的记录关键字,则直接插入排序的时间复杂度为________,快速排序的平

均时间复杂度为_________。

2. 设指针变量p指向双向循环链表中的结点X,则删除结点X需要执行的语句序列为

_________________________________________________________(设结点中的两个指针域分别为llink和rlink)。

3. 根据初始关键字序列(19,22,01,38,10)建立的二叉排序树的高度为____________。 4. 深度为k的完全二叉树中最少有____________个结点。

5. 设初始记录关键字序列为(K1,K2,?,Kn),则用筛选法思想建堆必须从第______个元

素开始进行筛选。

6. 设哈夫曼树中共有99个结点,则该树中有_________个叶子结点;若采用二叉链表作为

存储结构,则该树中有_____个空指针域。

7. 设有一个顺序循环队列中有M个存储单元,则该循环队列中最多能够存储________个队

列元素;当前实际存储________________个队列元素(设头指针F指向当前队头元素的前一个位置,尾指针指向当前队尾元素的位置)。

8. 设顺序线性表中有n个数据元素,则第i个位置上插入一个数据元素需要移动表中

_______个数据元素;删除第i个位置上的数据元素需要移动表中_______个元素。 9. 设一组初始记录关键字序列为(20,18,22,16,30,19),则以20为中轴的一趟快速

排序结果为______________________________。

10.设一组初始记录关键字序列为(20,18,22,16,30,19),则根据这些初始关键字序列

建成的初始堆为________________________。

11.设某无向图G中有n个顶点,用邻接矩阵A作为该图的存储结构,则顶点i和顶点j

互为邻接点的条件是______________________。

12.设无向图对应的邻接矩阵为A,则A中第i上非0元素的个数_________第i列上非0

元素的个数(填等于,大于或小于)。

13.设前序遍历某二叉树的序列为ABCD,中序遍历该二叉树的序列为BADC,则后序遍历

该二叉树的序列为_____________。

14.设散列函数H(k)=k mod p,解决冲突的方法为链地址法。要求在下列算法划线处填上正

确的语句完成在散列表hashtalbe中查找关键字值等于k的结点,成功时返回指向关键字的指针,不成功时返回标志0。

typedef struct node {int key; struct node *next;} lklist;

13

void createlkhash(lklist *hashtable[ ]) {

int i,k; lklist *s;

for(i=0;i

s=(lklist *)malloc(sizeof(lklist)); s->key=a[i];

k=a[i] % p; s->next=hashtable[k];_______________________; } }

三、计算题(每题10分,共30分)

1、画出广义表LS=(( ) , (e) , (a , (b , c , d )))的头尾链表存储结构。 2、下图所示的森林:

(1) 求树(a)的先根序列和后根序列; (2) 求森林先序序列和中序序列; (3)将此森林转换为相应的二叉树;

ABD(a)CEFIGHJ(b)K

3、设散列表的地址范围是[ 0..9 ],散列函数为H(key)= (key +2)MOD 9,并采用链

表处理冲突,请画出元素7、4、5、3、6、2、8、9依次插入散列表的存储结构。

四、算法设计题(每题10分,共30分)

1. 设单链表中有仅三类字符的数据元素(大写字母、数字和其它字符),要求利用原单链表

中结点空间设计出三个单链表的算法,使每个单链表只包含同类字符。 2. 设计在链式存储结构上交换二叉树中所有结点左右子树的算法。 3. 在链式存储结构上建立一棵二叉排序树。

14

2

数据结构试卷(五)

一、选择题(20分)

1.数据的最小单位是( )。 (A) 数据项

(B) 数据类型

(C) 数据元素

(D) 数据变量

2.设一组初始记录关键字序列为(50,40,95,20,15,70,60,45),则以增量d=4的一趟希尔排序结束后前4条记录关键字为( )。 (A) 40,50,20,95 (C) 15,20,40,45

(B) 15,40,60,20 (D) 45,40,15,20

3.设一组初始记录关键字序列为(25,50,15,35,80,85,20,40,36,70),其中含有5个长度为2的有序子表,则用归并排序的方法对该记录关键字序列进行一趟归并后的结果为( )。

(A) 15,25,35,50,20,40,80,85,36,70 (B) 15,25,35,50,80,20,85,40,70,36 (C) 15,25,35,50,80,85,20,36,40,70 (D) 15,25,35,50,80,20,36,40,70,85

4.函数substr(“DATASTRUCTURE”,5,9)的返回值为( )。 (A) “STRUCTURE” (C) “ASTRUCTUR”

(B) “DATA”

(D) “DATASTRUCTURE”

5.设一个有序的单链表中有n个结点,现要求插入一个新结点后使得单链表仍然保持有序,则该操作的时间复杂度为( )。 (A) O(log2n)

(B) O(1)

(C) O(n)

2

(D) O(n)

6.设一棵m叉树中度数为0的结点数为N0,度数为1的结点数为Nl,??,度数为m的结点数为Nm,则N0=( )。 (A) Nl+N2+??+Nm

(C) N2+2N3+3N4+??+(m-1)Nm

(B) l+N2+2N3+3N4+??+(m-1)Nm (D) 2Nl+3N2+??+(m+1)Nm

7.设有序表中有1000个元素,则用二分查找查找元素X最多需要比较( )次。 (A) 25

(B) 10

(C) 7

(D) 1

15

8.设连通图G中的边集E={(a,b),(a,e),(a,c),(b,e),(e,d),(d,f),(f,c)},则从顶点a出发可以得到一种深度优先遍历的顶点序列为( )。 (A) abedfc

(B) acfebd

(C) aebdfc

(D) aedfcb

9.设输入序列是1、2、3、??、n,经过栈的作用后输出序列的第一个元素是n,则输出序列中第i个输出元素是( )。 (A) n-i

(B) n-1-i

(C) n+1-i

(D) 不能确定

10 设一组初始记录关键字序列为(45,80,55,40,42,85),则以第一个记录关键字45

为基准而得到一趟快速排序的结果是( )。

二、填空题(共20分)

1. 设有一个顺序共享栈S[0:n-1],其中第一个栈项指针top1的初值为-1,第二个栈顶

指针top2的初值为n,则判断共享栈满的条件是____________________。 2. 在图的邻接表中用顺序存储结构存储表头结点的优点是____________________。 3. 设有一个n阶的下三角矩阵A,如果按照行的顺序将下三角矩阵中的元素(包括对角线

上元素)存放在n(n+1)个连续的存储单元中,则A[i][j]与A[0][0]之间有_______个数据元素。

4. 栈的插入和删除只能在栈的栈顶进行,后进栈的元素必定先出栈,所以又把栈称为

__________表;队列的插入和删除运算分别在队列的两端进行,先进队列的元素必定先出队列,所以又把队列称为_________表。

5. 设一棵完全二叉树的顺序存储结构中存储数据元素为ABCDEF,则该二叉树的前序遍历

序列为___________,中序遍历序列为___________,后序遍历序列为___________。 6. 设一棵完全二叉树有128个结点,则该完全二叉树的深度为________,有__________

个叶子结点。

7. 设有向图G的存储结构用邻接矩阵A来表示,则A中第i行中所有非零元素个数之和等

于顶点i的________,第i列中所有非零元素个数之和等于顶点i的__________。 8. 设一组初始记录关键字序列(k1,k2,??,kn)是堆,则对i=1,2,?,n/2而言满足

的条件为_______________________________。

9. 下面程序段的功能是实现冒泡排序算法,请在下划线处填上正确的语句。

16

(A) 40,42,45,55,80,83 (C) 42,40,45,55,80,85

(B) 42,40,45,80,85,88 (D) 42,40,45,85,55,80