数据结构试题 试卷三 含答案

  • 格式:docx
  • 大小:43.94 KB
  • 文档页数:6

模拟试题三

模拟试题三

一、选择题(30分)

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

for(i=O;i

for(j=0;j

c[i][j]=O;

for(i=O;i

for(j=O;j

for(k=O;k< SPAN>

c[i][j]=c[i][j]+a[i][k]b[k][j];

A) O (mnt) B)0(m+n+t) C) O(m+nt) D)O(mt+n)

2.从一个长度为n的顺序表中删除第i个元素(1≤i≤n),需向前移动( )个元素。

A) n-i B) n-i+l C) n-i-l D)i

3.串的逻辑结构与( )的逻辑结构不同。

A)线性表 B)栈 C)队列 D)树

4.二叉树第i(i≥1)层最多有( )个结点。

A) 2i B) 2i C) 2i-l D) 2i-1

5.设单链表中指针p指向结点A,若要删除A之后的结点(若存在),则修改指针的操作为( )。

A) p->next=p->next->next B) p=p->next

C) p=p->next->next D)p->next=p

6.设一数列的输入顺序为l,2,3,4,5,6,通过栈操作不可能排成的输出序列为( )。

A)3,2,5,6,4,l B)l,5,4,6,2,3

C)2,4,3,5,l,6 D)4,5,3,6,2,l

7。设字符串Sl=‘ABCDEFG’,S2=‘PQRST’,则运算S=Concat(Sub(S1,2,Length(S2))Sub(S1,Length(S2),2))后结果为( )。

A)‘BCQR' B)‘BCDEF'

C)‘BCDEFG' D)‘BCDEFEF'

8.设有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主存储,all为第1个元素,其存储地址为1,每个元素占用1个地址空间,则a85的地址为( )

A) 13 B) 33 C) 18 D) 40

9.如果结点A有3个兄弟,且B为A的双亲,则B的度为( )。

A)3 B)4 C)5 D)1

10.线索化二叉树中某结点D,没有左孩子的主要条件是( )。

A) D->Lchild=NULL B) D->ltag=l

C) D->Rchild=NULL D)D->ltag=0

11.采用顺序查找法查找长度为n的线性表,则查找每个元素的平均比较次数为( )。

A)n B) n/2 C) (n+l)/2 D)(n-l)/2

12.已知一个有序表为(13,18,24,35,47,50,62,83,90,115,134),当二分查

找值为90的元素时,需( )次比较可查找成功。

A)l B)2 C)3 D)4

13.在顺序存储的线性表R[029]上进行顺序查找的平均查找长度为(①);进行二分查找

的平均查找长度为(②),进行分块查找(设分为5块)的平均查始长度为(⑨)。 ①A) 15 B) 15.5 C) 16 D) 20

②A)4 B) 62/15 C) 64/15 D) 25/6

⑧A)6 B) 11 C)5 D) 6.5

14.在所有排序方法中,关键字的比较次数与记录的初始排列无关的是( )。

A) Shell排序 B)冒泡排序

C)直接插入排序 D)直接选择排序

15.已知8个元素(34,76,45,18,26,54,92,65),按照依次插入结点的方法生成一棵二叉排序树,该树的深度为( )。

A)l B)2 C)3 D)4

二、填空题(15分)

1.二维数组A[10][5]采用以行序为主方式存储,每个元素占4个存储单元。并且A[5][3]的存储地址是1000,则A[8][2]的地址是__________。

2.若要在一个单链表的*p结点之前插入一个*s结点时,可执行下列操作:

s->next=__________;p->next=s;t=p->data; p->data=__________;

s->data=__________。

3.计算机软件系统中有两种处理字符串长度的方法,一种是采用__________,另一种是__________。

4.假定对线性表R[059]进行分块查找,共分10块,每块长度等于6。若假定查找索引表和块均用顺序查找法,则查找每一个元素的平均查找时间为__________。

5.在堆排序、快速排序和归并排序中,若从节省存储空间考虑,则应首先选取__________方法,其次选__________方法,最后选取__________方法;若从排序结构的稳定性考虑,则应选择__________方法;若只从平均情况下排序的速度来考虑,则选择__________方法;若只从最坏情况下排序最快并且要节省内存考虑,则应该取__________方法。

6.对一组记录(50,40,95,20,15,70,60,45,80)进行冒泡排序时,第一趟需进行相邻记录的交换次数为__________,在整个排序过程中共需进行__________趟才可以完成。

7.循环链表的主要优点是__________。

三、判断题(1 0分)

1.二维数组是数组元素为一维数组的线性表,因此它是线性结构。( )

2.每种数据结构都应具备三种基本运算:插入、删除和搜索。( )

3.用邻接矩阵法存储一个图时,在不考虑压缩存储的情况下,所占用的存储空间与图中

结点的个数有关,而与图的边数无关。( )

4.哈希表的查找效率主要取决于哈希建表时所选取的哈希函数和处理冲突的方法。( )

5.按先序遍历一棵二叉排序树所得到的遍历序列是一个递增序列。( )

6.进栈操作push(x,s)作用于链接栈时,无需判满。( )

7.若有一个叶子结点是某子树的中序遍历的最后一个结点,则它必须是该子树的先序遍

历的最后一个结点。( )

8.如果某数据结构的每一个元素都最多只有一个直接前驱,则必为线性表。( )

9.快速排序法在最好的情况下的时间复杂度是O(n)。( )。

10. 一个有序的单链表不能采用二分查找法进行查找。( )。

四、应用题(20分)

1.(1)给出题图3所示树的后序遍历结果。(4分)

(2)采用孩子——兄弟法将该树转换为一棵二叉树。(4分)

2.写出线性表(26,4,12,25,30,6,15,20,16,2,18)采用二路归并排序算法排序 后,第一趟和第二趟结束时的结果。(4分)

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

6,32,3,21,10,试为这8个字母设计哈夫曼编码。(4分)

4.判别以下序列是否为堆,如果不是,则把它调整为堆。(4分)

(1) (100, 86, 48, 73, 35, 39, 42, 57, 66, 21)。

(2) (16,4, 12, 25, 30,6, 15, 11, 20,2, 18)。

(3) (103, 97, 42, 38, 66, 23, 57, 12, 30, 52, 06, 20)。

五、算法设计(25分)

1.试写出求二叉树结点数目的算法。(8分)

2.设a=(al,a2,…,am)和b=(bl,b2,…,bn)是两个不带头结点的单循环链表,写出

将这两个表合并为循环链表c的算法。(9分)

3.试设计将数组A[0…N—l]中所有奇数移到所有偶数之前的算法,要求不另外增加存储

空间,且时间复杂度为O(n)。(8分

模拟试题三答案

模拟试题三参考答案

一、选择题

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

6.B 7.D 8.B 9.D 10.B

11.C 12.B 13. B, B,D 14.D 15.C

二、填空题

1. 1056。 2.p->next; s->data; t。

3.固定长度, 长度指针。 4.9。

5.堆排序,快速排序,归并排序,归并排序,快速排序,堆排序。

6. 6,7。

7.从任一结点出发可以遍历链表中的所有结点。

三、判断题

1. √ 2. √ 3.× 4. √ 5.×

6. √ 7.× 8.× 9. √ 10. √

四、应用题

1.(1)树的后序序列:BEFCGDA

(2)转换为二叉树:

2.二路归并第一趟和第二趟结束时的结果: (1)4,26, 12, 25,6,30, 15, 20,2, 16, 18

(2)4, 12, 25, 26,6, 15, 20, 30,2, 16, 18

3.设权值w=(7,19,2,6,32,3,21,10),n=8,则m-15,依此设计哈夫曼编码如下:

4.调整堆:

(1) (100, 86, 48, 73, 35, 39,42,57,66,21)。

(2) (16,4, 12, 25, 30,6,15,11,20,2,18)。

(3) (103, 97, 42, 38, 66, 23,57,12,30, 52, 06, 20)。

五、算法设计