数据结构试卷1(含答案) 下载本文

内容发布更新时间 : 2024/5/7 22:33:42星期一 下面是文章的全部内容请认真阅读。

数据结构试卷

一、单项选择题(本大题共15小题,每小题2分,共30分)

在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。

1.下列选项中与数据存储结构无关的术语是( ) A.顺序表 B.链表 C.链队列 D.栈

2.将两个各有n个元素的有序表归并成一个有序表,最少的比较次数是( ) A.n-1 B.n C.2n-1 D.2n

3.已知循环队列的存储空间大小为m,队头指针front指向队头元素,队尾指针rear指向队尾元素的下一个位置,则向队列中插入新元素时,修改指针的操作是( ) A.rear=(rear-1)%m; B.front=(front+1)%m; C.front=(front-1)%m; D.rear=(rear+1)%m;

4.递归实现或函数调用时,处理参数及返回地址,应采用的数据结构是( ) A.堆栈 B.多维数组 C.队列 D.线性表

5.设有两个串p和q,其中q是p的子串,则求q在p中首次出现位置的算法称为( ) A.求子串 B.串联接 C.串匹配 D.求串长

6.对于广义表A,若head(A)等于tail(A),则表A为( ) A.( ) B.(( )) C.(( ),( )) D.(( ),( ),( ))

7.若一棵具有n(n>0)个结点的二叉树的先序序列与后序序列正好相反,则该二叉树一定是 ( )

A.结点均无左孩子的二叉树 B.结点均无右孩子的二叉树 C.高度为n的二叉树 D.存在度为2的结点的二叉树

8.若一棵二叉树中度为l的结点个数是3,度为2的结点个数是4,则该二叉树叶子结点的个数是( )

A.4 B.5 C.7 D.8

9. 某算法有3个程序段,第一程序段的执行次数为错误!未找到引用源。,第二个程序段执行次数为4n,第三个程序段的执行次数为0.06错误!未找到引用源。,则该算法的时间复杂度为( )。

A.O(n) B.O(错误!未找到引用源。) C.O(错误!未找到引用源。) D.O(错误!未找到引用源。)

10.已知有向图G=(V,E),其中V={V1,V2,V3,V4},E={},图G的拓扑序列是( )

A.V1,V2,V3,V4 B.V1,V3,V2,V4 C.V1,V3,V4,V2 D.V1,V2,V4,V3 11.平均时间复杂度为O(n log n)的稳定排序算法是( ) A.快速排序

B.堆排序 C.归并排序 D.冒泡排序

12.已知关键字序列为(51,22,83,46,75,18,68,30),对其进行快速排序,第一趟划分完成后的关键字序列是( ) A.(18,22,30,46,51,68,75,83) C.(46,30,22,18,51,75,68,83)

B.(30,18,22,46,51,75,83,68) D.(30,22,18,46,51,75,68,83)

13.某索引顺序表共有元素395个,平均分成5块。若先对索引表采用顺序查找,再对块中元素进行顺序查找,则在等概率情况下,分块查找成功的平均查找长度是( )

A.43 B.79 C.198 D.200

14.在含有10个关键字的3阶B-树中进行查找,至多访问的结点个数为( )

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

15.设矩阵A是一个对称矩阵,为了节省空间,将其下三角部分按行优先存放在一维数组B中。对下三角矩阵中任一元素aij(设矩阵A是一个对称矩阵,为了节省空间,将其下三角部分按行优先存放在一维数组B中,对下三角矩阵中任一元素aij(i>=j),在一维数组B中下标K的值是( )。

A、i(i-1)/2+j-1 B、i(i-1)/2+j C、i(i+1)/2+j-1 D、i(i+1)/2+j 二、填空题(本大题共10小题,每小题2分,共20分)

请在每小题的空格中填上正确答案。错填、不填均无分。

16.数据结构由数据的逻辑结构、存储结构和数据的____________三部分组成。

17.在单链表中某结点后插入一个新结点,需要修改_______________个结点指针域的值。 18.设栈S的初始状态为空,若元素a、b、c、d、e、f依次进栈,得到的出栈序列是b、d、c、f、e、a,则栈S的容量至少是________________。 19.长度为零的串称为________________。

20.广义表G=(a,b,(c,d,(e,f)),G)的长度为________________。

21.一棵树T采用孩子兄弟链表存储,如果树T中某个结点为叶子结点,则该结点在二叉链表中所对应的结点一定是________________。

22.一个有n个顶点的无向连通图,最少有________________条边。

23.当待排关键字序列基本有序时,快速排序、简单选择排序和直接插入排序三种排序方法中,运行效率最高的是________________。

24.设目标串T=“abccdcdccbaa”,模式P=“cdcc”则第___________次匹配成功。若字符串的长度为n,则子串的个数为___________

25.在归并排序中,若待排序记录的个数为20,则共需要进行____________趟归并 三、解答题(本大题共4小题,每小题5分,共20分)

26.已知一棵二叉排序树(结点值大小按字母顺序)的前序遍历序列为EBACDFHG, 请回答下列问题: (1)画出此二叉排序树;

(2)若将此二叉排序树看作森林的二叉链表存储,请画出对应的森林。 27.已知有向图的邻接表如图所示,请回答下面问题: (1)给出该图的邻接矩阵;

(2)从结点A出发,写出该图的深度优先遍历序列。

28. 在一个算法中需要建立多个堆栈是可以选用下列两种种方案之一,试问:这三种方案之间相比较各有什么优缺点?

(1) 分别用多个顺序存储空间建立多个独立的堆栈; (2) 多个堆栈共享一个顺序存储空间;

29. 设G=(V,E)以邻接表存储,如图所示,试画出图的深度优先和广度优先生成图。

四、算法阅读题(本大题共4小题,每小题5分,共20分) 30.阅读下列程序。

void f30(int A[], int n) {

int i,j,m; for (i=1;i

for (j=0;j

m=A[i*n+j]; A[i*n+j]=A[j*n+i]; A[j*n+i]=m; }

}

回答下列问题:

? 1 2 3???(1)已知矩阵B=? 4 5 6?,将其按行优先存于一维数组A中,给出执行函数调

? 7 8 9???用f30(A,3)后矩阵B的值;

31.假设以二叉链表表示二叉树,其类型定义如下: typedef struct node { char data;

struct node*Ichild, *rchild; ∥左右孩子指针 } *BinTree;