数据结构复习题二及答案Word文档格式.docx

上传人:b****5 文档编号:8344641 上传时间:2023-05-11 格式:DOCX 页数:15 大小:51.52KB
下载 相关 举报
数据结构复习题二及答案Word文档格式.docx_第1页
第1页 / 共15页
数据结构复习题二及答案Word文档格式.docx_第2页
第2页 / 共15页
数据结构复习题二及答案Word文档格式.docx_第3页
第3页 / 共15页
数据结构复习题二及答案Word文档格式.docx_第4页
第4页 / 共15页
数据结构复习题二及答案Word文档格式.docx_第5页
第5页 / 共15页
数据结构复习题二及答案Word文档格式.docx_第6页
第6页 / 共15页
数据结构复习题二及答案Word文档格式.docx_第7页
第7页 / 共15页
数据结构复习题二及答案Word文档格式.docx_第8页
第8页 / 共15页
数据结构复习题二及答案Word文档格式.docx_第9页
第9页 / 共15页
数据结构复习题二及答案Word文档格式.docx_第10页
第10页 / 共15页
数据结构复习题二及答案Word文档格式.docx_第11页
第11页 / 共15页
数据结构复习题二及答案Word文档格式.docx_第12页
第12页 / 共15页
数据结构复习题二及答案Word文档格式.docx_第13页
第13页 / 共15页
数据结构复习题二及答案Word文档格式.docx_第14页
第14页 / 共15页
数据结构复习题二及答案Word文档格式.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

数据结构复习题二及答案Word文档格式.docx

《数据结构复习题二及答案Word文档格式.docx》由会员分享,可在线阅读,更多相关《数据结构复习题二及答案Word文档格式.docx(15页珍藏版)》请在冰点文库上搜索。

数据结构复习题二及答案Word文档格式.docx

(A)1(B)n(C)nlog2n(D)n2

5.设一组初始关键字记录关键字为(20,15,14,18,21,36,40,10),则以20为基准记录的一趟快速排序结束后的结果为()。

(A)10,15,14,18,20,36,40,21

(B)10,15,14,18,20,40,36,21

(C)10,15,14,20,18,40,36,2l

(D)15,10,14,18,20,36,40,21

6.设二叉排序树中有n个结点,则在二叉排序树的平均平均查找长度为()。

(A)O

(1)(B)O(log2n)(C)(D)O(n2)

7.设无向图G中有n个顶点e条边,则其对应的邻接表中的表头结点和表结点的个数分别为()。

(A)n,e(B)e,n(C)2n,e(D)n,2e

8.设某强连通图中有n个顶点,则该强连通图中至少有()条边。

(A)n(n-1)(B)n+1(C)n(D)n(n+1)

9.设有5000个待排序的记录关键字,如果需要用最快的方法选出其中最小的10个记录关键字,则用下列()方法可以达到此目的。

(A)快速排序(B)归并排序(C)堆排序(D)插入排序

10.下列四种排序中()的空间复杂度最大。

(A)插入排序(B)冒泡排序(C)堆排序(D)归并排序

11.设一组权值集合W={2,3,4,5,6},则由该权值集合构造的哈夫曼树中带权路径长度之和为()。

(A)20(B)30(C)40(D)45

12.执行一趟快速排序能够得到的序列是()。

(A)[41,12,34,45,27]55[72,63]

(B)[45,34,12,41]55[72,63,27]

(C)[63,12,34,45,27]55[41,72]

(D)[12,27,45,41]55[34,63,72]

13.设一条单链表的头指针变量为head且该链表没有头结点,则其判空条件是()。

(A)head==NULL(B)head->

next==NULL

(C)head->

next==head(D)head!

=NULL

14.时间复杂度不受数据初始状态影响而恒为O(nlog2n)的是()。

(A)堆排序(B)冒泡排序(C)希尔排序(D)快速排序

15.设二叉树的先序遍历序列和后序遍历序列正好相反,则该二叉树满足的条件是()。

(A)空或只有一个结点(B)高度等于其结点数

(C)任一结点无左孩子(D)任一结点无右孩子

16.一趟排序结束后不一定能够选出一个元素放在其最终位置上的是()。

(A)堆排序(B)冒泡排序(C)快速排序(D)希尔排序

17.设某棵三叉树中有40个结点,则该三叉树的最小高度为()。

(A)3(B)4(C)5(D)6

18.顺序查找不论在顺序线性表中还是在链式线性表中的时间复杂度为()。

(A)O(n)(B)O(n2)(C)O(n1/2)(D)O(1og2n)

19.二路归并排序的时间复杂度为()。

(A)O(n)(B)O(n2)(C)O(nlog2n)(D)O(1og2n)

20.深度为k的完全二叉树中最少有()个结点。

(A)2k-1-1(B)2k-1(C)2k-1+1(D)2k-1

21.设指针变量front表示链式队列的队头指针,指针变量rear表示链式队列的队尾指针,指针变量s指向将要入队列的结点X,则入队列的操作序列为()。

(A)front->

next=s;

front=s;

(B)s->

next=rear;

rear=s;

(C)rear->

(D)s->

next=front;

22.设某无向图中有n个顶点e条边,则建立该图邻接表的时间复杂度为()。

(A)O(n+e)(B)O(n2)(C)O(ne)(D)O(n3)

23.设某哈夫曼树中有199个结点,则该哈夫曼树中有()个叶子结点。

(A)98(B)99(C)100(D)101

24.设二叉排序树上有n个结点,则在二叉排序树上查找结点的平均时间复杂度为()。

25.设用邻接矩阵A表示有向图G的存储结构,则有向图G中顶点i的入度为()。

(A)第i行非0元素的个数之和(B)第i列非0元素的个数之和

(C)第i行0元素的个数之和(D)第i列0元素的个数之和

26.下列程序段的时间复杂度为()。

for(i=0;

m;

i++)for(j=0;

j<

t;

j++)c[i][j]=0;

j++)for(k=0;

k<

n;

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

(A)O(m*n*t)(B)O(m+n+t)(C)O(m+n*t)(D)O(m*t+n)

27.设顺序线性表中有n个数据元素,则删除表中第i个元素需要移动()个元素。

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

28.设F是由T1、T2和T3三棵树组成的森林,与F对应的二叉树为B,T1、T2和T3的结点数分别为N1、N2和N3,则二叉树B的根结点的左子树的结点数为()。

(A)N1-1(B)N2-1(C)N2+N3(D)N1+N3

29.利用直接插入排序法的思想建立一个有序线性表的时间复杂度为()。

(A)O(n)(B)O(nlog2n)(C)O(n2)(D)O(1og2n)

30.设指针变量p指向双向链表中结点A,指针变量s指向被插入的结点X,则在结点A的后面插入结点X的操作序列为()。

(A)p->

right=s;

s->

left=p;

p->

right->

left=s;

right=p->

right;

s->

(C)p->

31.下列各种排序算法中平均时间复杂度为O(n2)是()。

(A)快速排序(B)堆排序(C)归并排序(D)冒泡排序

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

(A)n-i(B)n-1-i(C)n+l-i(D)不能确定

33.设散列表中有m个存储单元,散列函数H(key)=key%p,则p最好选择()。

(A)小于等于m的最大奇数(B)小于等于m的最大素数

(C)小于等于m的最大偶数(D)小于等于m的最大合数

34.设在一棵度数为3的树中,度数为3的结点数有2个,度数为2的结点数有1个,度数为1的结点数有2个,那么度数为0的结点数有()个。

(A)4(B)5(C)6(D)7

35.设完全无向图中有n个顶点,则该完全无向图中有()条边。

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

36.设顺序表的长度为n,则顺序查找的平均比较次数为()。

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

37.设有序表中的元素为(13,18,24,35,47,50,62),则在其中利用二分法查找值为24的元素需要经过()次比较。

(A)1(B)2(C)3(D)4

38.设顺序线性表的长度为30,分成5块,每块6个元素,如果采用分块查找,则其平均查找长度为()。

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

39.设有向无环图G中的有向边集合E={<

1,2>

2,3>

3,4>

1,4>

},则下列属于该有向图G的一种拓扑排序序列的是()。

(A)1,2,3,4(B)2,3,4,1(C)1,4,2,3(D)1,2,4,3

40.设有一组初始记录关键字序列为(34,76,45,18,26,54,92),则由这组记录关键字生成的二叉排序树的深度为()。

二、填空殖(每空1分共20分)

1.数据的物理结构主要包括_____________和______________两种情况。

2.设一棵完全二叉树中有500个结点,则该二叉树的深度为__________;

若用二叉链表作为该完全二叉树的存储结构,则共有___________个空指针域。

3.设输入序列为1、2、3,则经过栈的作用后可以得到___________种不同的输出序列。

4.设有向图G用邻接矩阵A[n][n]作为存储结构,则该邻接矩阵中第i行上所有元素之和等于顶点i的________,第i列上所有元素之和等于顶点i的________。

5.设哈夫曼树中共有n个结点,则该哈夫曼树中有________个度数为1的结点。

6.设有向图G中有n个顶点e条有向边,所有的顶点入度数之和为d,则e和d的关系为_________。

7.__________遍历二叉排序树中的结点可以得到一个递增的关键字序列(填先序、中序或后序)。

8.设查找表中有100个元素,如果用二分法查找方法查找数据元素X,则最多需要比较________次就可以断定数据元素X是否在查找表中。

9.不论是顺序存储结构的栈还是链式存储结构的栈,其入栈和出栈操作的时间复杂度均为____________。

10.设有n个结点的完全二叉树,如果按照从自上到下、从左到右从1开始顺序编号,则第i个结点的双亲结点编号为____________,右孩子结点的编号为___________。

11.设一组初始记录关键字为(72,73,71,23,94,16,5),则以记录关键字72为基准的一趟快速排序结果为___________________________。

12.设有向图G中有向边的集合E={<

4,2>

4,3>

},则该图的一种拓扑序列为____________________。

13.下列算法实现在顺序散列表中查找值为x的关键字,请在下划线处填上正确的语句。

structrecord{intkey;

intothers;

};

inthashsqsearch(structrecordhashtable[],intk)

{

inti,j;

j=i=k%p;

while(hashtable[j].key!

=k&

&

hashtable[j].flag!

=0){j=(____)%m;

if(i==j)return(-1);

if(_______________________)return(j);

elsereturn(-1);

14.下列算法实现在二叉排序树上查找关键值k,请在下划线处填上正确的语句。

typedefstructnode{intkey;

structnode*lchild;

structnode*rchild;

}bitree;

bitree*bstsearch(bitree*t,intk)

{

if(t==0)return(0);

elsewhile(t!

=0)

if(t->

key==k)_____________;

elseif(t->

key>

k)t=t->

lchild;

else_____________;

15.for(i=1,t=1,s=0;

i<

i++){t=t*i;

}的时间复杂度为_________。

16.设指针变量p指向单链表中结点A,指针变量s指向被插入的新结点X,则进行插入操作的语句序列为__________________________(设结点的指针域为next)。

17.设有向图G的二元组形式表示为G=(D,R),D={1,2,3,4,5},R={r},r={<

1,2>

2,4>

4,5>

1,3>

3,2>

3,5>

},则给出该图的一种拓扑排序序列__________。

18.设无向图G中有n个顶点,则该无向图中每个顶点的度数最多是_________。

19.设二叉树中度数为0的结点数为50,度数为1的结点数为30,则该二叉树中总共有_______个结点数。

20.设F和R分别表示顺序循环队列的头指针和尾指针,则判断该循环队列为空的条件为_____________________。

21.设二叉树中结点的两个指针域分别为lchild和rchild,则判断指针变量p所指向的结点为叶子结点的条件是_____________________________________________。

22.简单选择排序和直接插入排序算法的平均时间复杂度为___________。

23.快速排序算法的空间复杂度平均情况下为__________,最坏的情况下为__________。

24.散列表中解决冲突的两种方法是_____________和_____________。

25.设指针p指向单链表中结点A,指针s指向被插入的结点X,则在结点A的前面插入结点X时的操作序列为:

1)s->

next=___________;

2)p->

3)t=p->

4)p->

data=___________;

5)s->

data=t;

26.设某棵完全二叉树中有100个结点,则该二叉树中有______________个叶子结点。

27.设某顺序循环队列中有m个元素,且规定队头指针F指向队头元素的前一个位置,队尾指针R指向队尾元素的当前位置,则该循环队列中最多存储_______队列元素。

28.对一组初始关键字序列(40,50,95,20,15,70,60,45,10)进行冒泡排序,则第一趟需要进行相邻记录的比较的次数为__________,在整个排序过程中最多需要进行__________趟排序才可以完成。

29.在堆排序和快速排序中,如果从平均情况下排序的速度最快的角度来考虑应最好选择_________排序,如果从节省存储空间的角度来考虑则最好选择________排序。

30.设一组初始记录关键字序列为(20,12,42,31,18,14,28),则根据这些记录关键字构造的二叉排序树的平均查找长度是_______________________________。

31.设一棵二叉树的中序遍历序列为BDCA,后序遍历序列为DBAC,则这棵二叉树的前序序列为____________________。

32.设用于通信的电文仅由8个字母组成,字母在电文中出现的频率分别为7、19、2、6、32、3、21、10,根据这些频率作为权值构造哈夫曼树,则这棵哈夫曼树的高度为________________。

33.设一组记录关键字序列为(80,70,33,65,24,56,48),则用筛选法建成的初始堆为_______________________。

34.设无向图G(如右图所示),则其最小生成树上所有边的权值之和为_________________。

 

三、应用题

1.已知二叉树的前序遍历序列是AEFBGCDHIKJ,中序遍历序列是EFAGBCHKIJD,画出此二叉树,并画出它的后序线索二叉树。

2.已知待散列的线性表为(36,15,40,63,22),散列用的一维地址空间为[0..6],假定选用的散列函数是H(K)=Kmod7,若发生冲突采用线性探查法处理,试:

(1)计算出每一个元素的散列地址并在下图中填写出散列表:

`0123456

(2)求出在查找每一个元素概率相等情况下的平均查找长度。

3.已知序列(10,18,4,3,6,12,1,9,18,8)请用快速排序写出每一趟排序的结果。

4.在如下数组A中链接存储了一个线性表,表头指针为A[0].next,试写出该线性表。

A01234567

data

60

50

78

90

34

40

next

3

5

7

2

4

1

5.请画出下图的邻接矩阵和邻接表。

6.已知一个图的顶点集V和边集E分别为:

V={1,2,3,4,5,6,7};

E={(1,2)3,(1,3)5,(1,4)8,(2,5)10,(2,3)6,(3,4)15,

(3,5)12,(3,6)9,(4,6)4,(4,7)20,(5,6)18,(6,7)25};

用克鲁斯卡尔算法得到最小生成树,试写出在最小生成树中依次得到的各条边。

7.画出向小根堆中加入数据4,2,5,8,3时,每加入一个数据后堆的变化。

8.阅读算法,回答问题。

LinkListmynote(LinkListL)

{//L是不带头结点的单链表的头指针

if(L&

L->

next)

q=L;

L=L->

p=L;

S1:

while(p->

next)p=p->

S2:

p->

next=q;

q->

next=NULL;

}

returnL;

请回答下列问题:

(1)说明语句S1的功能;

(2)说明语句组S2的功能;

(3)设链表表示的线性表为(a1,a2,…,an),写出算法执行后的返回值所表示的线性表。

四、算法设计题

1.设计在单链表中删除值相同的多余结点的算法。

2.设计在顺序有序表中实现二分查找的算法。

3.设计判断二叉树是否为二叉排序树的算法。

4.设计计算二叉树中所有结点值之和的算法。

5.设计将所有奇数移到所有偶数之前的算法。

6.设计判断单链表中元素是否是递增的算法。

数据结构复习题二答案

一、选择题

1-10BBAAABDCCD

11-20DAAADDBACB

21-30CACDBAAACD

31-40DCBCACCDAA

二、填空题

1.顺序存储结构、链式存储结构

2.9,501

3.5

4.出度,入度

5.0

6.e=d

7.中序

8.7

9.O

(1)

10.i/2,2i+1

11.(5,16,71,23,72,94,73)

12.(1,4,3,2)

13.j+1,hashtable[j].key==k

14.return(t),t=t->

rchild

15.O(n)

16.s->

next=p->

next;

next=s

17.(1,3,2,4,5)

18.n-1

19.129

20.F==R

21.p->

lchild==0&

rchild==0

22.O(n2)

23.O(nlog2n),O(n)

24.开放定址法,链地址法

25.p->

next,s->

26.50

27.m-1

28.6,8

29.快速,堆

30.19/7

31.CBDA

32.6

33.(24,65,33,80,70,56,48)

34.8

1.

2.H(36)=36mod7=1;

H1(22)=(1+1)mod7=2;

….冲突

H(15)=15mod7=1;

….冲突H2(22)=(2+1)mod7=3;

H1(15)=(1+1)mod7=2;

H(40)=40mod7=5;

H(63)=63mod7=0;

H(22)=22mod7=1;

(1)0123456

63

36

15

22

(2)ASL=

3.(8,9,4,3,6,1),10,(12,18,18)

(1,6,4,3),8,(9),10,12,(18,18)

1,(3,4,6),8,9,10,12,18,(18)

1,3,(4,6),8,9,10,12,18,18

1,3,4,6,8,9,10,12,18,18

4.线性表为:

(78,50,40,60,34,90)

5.邻接矩阵:

邻接表如图11所示:

图11

6.用克鲁斯卡尔算法得到的最小生成树为:

(1,2)3,(4,6)4,(1,3)5,(1,4)8,(2,5)10,(4,7)20

7.如图(7)

图(7)

8.

(1)查询链表的尾结点

(2)将第一个结点链接到链表的尾部,作为新的尾结点

(3)返回的线性表为(a2,a3,…,an,a1)

typedefintdatatype;

typedefstructnode{datatypedata;

structnode*next;

}lklist;

voiddelredundant(lklist*&

head)

lklist*p,*q,*s;

for(p=head;

p!

=0;

p=p->

{

for(q=p->

next,s=q;

q!

=

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 简洁抽象

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2