严蔚敏版《数据结构与算法》期末练习题Word格式文档下载.docx

上传人:b****6 文档编号:19471767 上传时间:2023-01-06 格式:DOCX 页数:40 大小:123.71KB
下载 相关 举报
严蔚敏版《数据结构与算法》期末练习题Word格式文档下载.docx_第1页
第1页 / 共40页
严蔚敏版《数据结构与算法》期末练习题Word格式文档下载.docx_第2页
第2页 / 共40页
严蔚敏版《数据结构与算法》期末练习题Word格式文档下载.docx_第3页
第3页 / 共40页
严蔚敏版《数据结构与算法》期末练习题Word格式文档下载.docx_第4页
第4页 / 共40页
严蔚敏版《数据结构与算法》期末练习题Word格式文档下载.docx_第5页
第5页 / 共40页
点击查看更多>>
下载资源
资源描述

严蔚敏版《数据结构与算法》期末练习题Word格式文档下载.docx

《严蔚敏版《数据结构与算法》期末练习题Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《严蔚敏版《数据结构与算法》期末练习题Word格式文档下载.docx(40页珍藏版)》请在冰豆网上搜索。

严蔚敏版《数据结构与算法》期末练习题Word格式文档下载.docx

p^.llink^.rlink:

q^.llink:

=p^.llink;

B.q^.llink:

p^.llink^.rlink:

p^.llink:

=q^.rlink;

C.q^.rlink:

p^.rlink:

p^.llink^.rlink:

q^.rlink:

D.p^.llink^.rlink:

9.下列排序算法中,其中(D)是稳定的。

A)堆排序,冒泡排序B)快速排序,堆排序

C)直接选择排序,希尔排序D)归并排序,冒泡排序

10.对一组数据(84,47,25,15,21)排序,数据的排列次序在排序的过程中的变化为

(1)8447251521

(2)1547258421(3)1521258447(4)1521254784

则采用的排序是(A)。

A)选择B)冒泡C)快速D)插入

11.双向链表中有两个指针域,llink和rlink分别指向前趋及后继,设p指向链表中的一个结点,现要求删去p所指结点,则正确的删除是(D)(链中结点数大于2,p不是第一个结点)

A.p^.llink^.rlink:

=p^.rlink;

dispose(p);

B.dispose(p);

p^.llink^,rlink:

C.p^.llink^.rlink:

D.以上A,B,C都不对。

12.一棵二叉树的前序遍历序列为ABCDEFG,它的中序遍历序列可能是(B)

A)CABDEFGB)BCDAEFGC)DACEFBGD)ADBCFEG

13.设一个栈的输入序列是1,2,3,4,5,则下列序列中,是栈的合法输出序列的是(D)。

A)51234B)45132C)43125D)32154

14.若一个栈的输入序列为1,2,3,…,n,输出序列的第一个元素是i,则第j个输出元素是(D)。

A.i-j-1B.i-jC.j-i+1D.不确定的

15.一个递归算法必须包括(B)。

A.递归部分B.终止条件和递归部分C.迭代部分D.终止条件和迭代部分

16.若需在O(nlog2n)的时间内完成对数组的排序,且要求排序是稳定的,则可选择的排序方法是(C)。

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

17.下面关于串的的叙述中,哪一个是不正确的?

(B)

A.串是字符的有限序列B.空串是由空格构成的串

C.模式匹配是串的一种重要运算D.串既可以采用顺序存储,也可以采用链式存储

18.稳定的排序方法是(B)

A)直接插入排序和快速排序B)折半插入排序和起泡排序

C)简单选择排序和堆排序D)树形选择排序和shell排序

19.已知串S=‘aaab’,其Next数组值为(A)。

A.0123B.1123C.1231D.1211

20.串的长度是指(B)

A.串中所含不同字母的个数B.串中所含字符的个数

C.串中所含不同字符的个数D.串中所含非空格字符的个数

21.某堆栈的输入序列为a,b,c,d,下面的四个序列中,不可能是它的输出序列的是(D)。

A)a,c,b,dB)b,c,d,aC)c,d,b,aD)d,c,a,b

22.数组A[0..5,0..6]的每个元素占五个字节,将其按列优先次序存储在起始地址为1000的内存单元中,则元素A[5,5]的地址是(A)。

A.1175B.1180C.1205D.1210

23.A[N,N]是对称矩阵,将下面三角(包括对角线)以行序存储到一维数组T[N(N+1)/2]中,则对任一上三角元素a[i][j]对应T[k]的下标k是(B)。

A.i(i-1)/2+jB.j(j-1)/2+iC.i(j-i)/2+1D.j(i-1)/2+1

24.已知广义表LS=((a,b,c),(d,e,f)),运用head和tail函数取出LS中原子e的运算是(C)。

A.head(tail(LS))B.tail(head(LS))

C.head(tail(head(tail(LS)))D.head(tail(tail(head(LS))))

25.下面说法不正确的是(A)。

A.广义表的表头总是一个广义表B.广义表的表尾总是一个广义表

C.广义表难以用顺序存储结构D.广义表可以是一个多层次的结构

26.一组记录的关键码为(46,79,56,38,40,84),则利用快速排序的方法,以第一个记录为基准得到的一次划分结果为(C)。

A)(38,40,46,56,79,84)B)(40,38,46,79,56,84)

C)(40,38,46,56,79,84)D)(40,38,46,84,56,79)

27.已知一算术表达式的中缀形式为A+B*C-D/E,后缀形式为ABC*+DE/-,其前缀形式为(D)

A.-A+B*C/DEB.-A+B*CD/EC.-+*ABC/DED.-+A*BC/DE

-+A*BC/DE

28.若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数是(B)

A.9B.11C.15D.不确定

29.若二叉树采用二叉链表存储结构,要交换其所有分支结点左、右子树的位置,利用(C)遍历方法最合适。

A.前序B.中序C.后序D.按层次

30.将一个长度为n的向量的第i个元素删除时,需要前移(B)个元素。

A)iB)n-iC)n+1D)n-i+1

31.某二叉树T有n个结点,设按某种顺序对T中的每个结点进行编号,编号为1,2,…,n,且有如下性质:

T中任一结点V,其编号等于左子树上的最小编号减1,而V的右子树的结点中,其最小编号等于V左子树上结点的最大编号加1。

这时是按(B)编号的。

A.中序遍历序列B.前序遍历序列C.后序遍历序列D.层次顺序

32.线索二叉树是一种(B)结构。

A.逻辑B.逻辑和存储C.物理D.线性

33.非空循环链表head的尾结点*p满足下列(C)条件

A)head->

next==p;

B)head==p;

C)p->

next==head;

D)p->

next==0

34.一个栈的输入序列是a,b,c,d,e,则可能的出栈序列是(D)。

A)ecdabB)cebdaC)daecbD)abcde

35.设栈s的类型为sqstack,判定栈空的条件是(C)。

A)s==NULLB)s->

top==0C)s.top==0D)s.top==NULL

36.深度为5的二叉树至多有个(B)结点。

A)12B)31C)14D)15

37.已知二叉树的后、中根序列分别是bedfca和badecf,则该二叉树的前根遍历序列是(C)。

A)defbcaB)fedbcaC)abcdefD)fedcba

38.一个有n个顶点的有向图最多有(B)弧。

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

39.具有n个顶点的无向图至少要有(B)条边才有可能是一个连通图。

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

40.图中有关路径的定义是(A)。

A.由顶点和相邻顶点序偶构成的边所形成的序列B.由不同顶点所形成的序列

C.由不同边所形成的序列D.上述定义都不是

41.一个向量的第一个元素的地址是100,每个元素的长度是2,则第五个元素的地址是(C)

A)102B)110C)108D)120

42.一个循环顺序队列,队头、尾指针的值分别为front,rear,则队列中元素个数为(A)。

(maxlen为循环顺序表的长度)

A)(rear-front+maxlen)%maxlen

B)(rear-front)%maxlen

C)rear-front+1

D)front-rear+1

43.一个有n个顶点的图最少有(D)条边。

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

44.具有5个顶点的无向图至少要有(A)条边才能确保是一个连通图。

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

45.设栈s的类型为sqstack,最多可容纳maxlen个元素,则判定栈满的条件是(B)。

A)s==maxlen-1B)s.top==maxlen-1C)s->

top==maxlen-1D)s.top==0

46.一个顺序队列q的类型为sqqueue,队头、尾指针分别为front,rear,最多可容纳maxlen个元素,则队空的条件是(C)。

A)front==rearB)rear==0C)q.front==q.rearD)rear==maxlen-1

47.下面是求连通网的最小生成树的prim算法:

集合VT,ET分别放顶点和边,初始为

(1),下面步骤重复n-1次:

a:

(2);

b:

(3);

最后:

(4)。

(1).A.VT,ET为空B.VT为所有顶点,ET为空

C.VT为网中任意一点,ET为空D.VT为空,ET为网中所有边

(2).A.选i属于VT,j不属于VT,且(i,j)上的权最小

B.选i属于VT,j不属于VT,且(i,j)上的权最大

C.选i不属于VT,j不属于VT,且(i,j)上的权最小

D.选i不属于VT,j不属于VT,且(i,j)上的权最大

(3).A.顶点i加入VT,(i,j)加入ETB.顶点j加入VT,(i,j)加入ET

C.顶点j加入VT,(i,j)从ET中删去D.顶点i,j加入VT,(i,j)加入ET

(4).A.ET中为最小生成树B.不在ET中的边构成最小生成树

C.ET中有n-1条边时为生成树,否则无解D.ET中无回路时,为生成树,否则无解

CABA

48.链栈与顺序栈相比,比较明显的优点是(D)

A)插入操作更加方便B)删除操作更加方便

C)不会出现下溢的情况D)不会出现上溢的情况

49.下面关于二分查找的叙述正确的是(D)

A.表必须有序,表可以顺序方式存储,也可以链表方式存储C.表必须有序,而且只能从小到大排列

B.表必须有序且表中数据必须是整型,实型或字符型D.表必须有序,且表只能以顺序方式存储

50.二叉查找树的查找效率与二叉树的(

(1))有关,在(

(2))时其查找效率最低

(1):

A.高度B.结点的多少C.树型D.结点的位置

(2):

A.结点太多B.完全二叉树C.呈单枝树D.结点太复杂。

CC

51.如果求一个连通图中以某个顶点为根的高度最小的生成树,应采用( B )

A)深度优先搜索算法B)广度优先搜索算法

C)求最小生成树的prim算法D)拓扑排序算法

52.既希望较快的查找又便于线性表动态变化的查找方法是(C)

A.顺序查找B.折半查找C.索引顺序查找D.哈希法查找

53.对表长为n的顺序表进行顺序查找,在查找概率相等的情况下,查找成功的平均查找长度为(C)

A)(n-1)/2B)n/2

C)(n+1)/2D)n

54.对于哈希函数H(key)=key%13,被称为同义词的关键字是(D)

A)35和41B)23和39

C)15和44D)25和51

55.某内排序方法的稳定性是指(D)。

A.该排序算法不允许有相同的关键字记录

B.该排序算法允许有相同的关键字记录

C.平均时间为0(nlogn)的排序方法

D.以上都不对

56.下列内部排序算法中:

A.快速排序B.直接插入排序C.二路归并排序D.简单选择排序E.起泡排序F.堆排序

(1)其比较次数与序列初态无关的算法是()

(2)不稳定的排序算法是()

(3)在初始序列已基本有序(除去n个元素中的某k个元素后即呈有序,k<

<

n)的情况下,排序效率最高的算法是()

(4)排序的平均时间复杂度为O(n•logn)的算法是()为O(n•n)的算法是()

1DC2ADF应是AF3B4ACFBDE

57.下列排序算法中(C)排序在一趟结束后不一定能选出一个元素放在其最终位置上。

A.选择B.冒泡C.归并D.堆

58.栈和队列都是(A)

A)限制存取位置的线性结构B)链式存储的非线性结构

C)顺序存储的线性结构D)限制存取位置的非线性结构

59.对关键码序列28,16,32,12,60,2,5,72快速排序,从小到大一次划分结果为(B)。

A.(2,5,12,16)26(60,32,72)B.(5,16,2,12)28(60,32,72)

C.(2,16,12,5)28(60,32,72)D.(5,16,2,12)28(32,60,72)

60.一棵含有n个节点的k叉树,可能达到的最小深度为多少?

(C)

A)n-kB)n-k+1C)|logkn|+1D)|logkn|其中|k|表示下取整

61.下列序列中(B)不是堆。

A)12365368486075B)12485368366075

C)12483660756853D)12366053486875

62.在下列内排序方法中,(C)的平均时间复杂性是O(nlogn)。

 A)直接插入排序B)简单选择排序  C)快速排序D)希尔排序

63.设顺序栈s非空,则语句段(C)可实现栈s的出栈操作,其中s.top为栈顶指针,s.elem为栈空间,出栈的元素存放在x中。

A)s.top:

=s.top+1;

B)x:

=s.elem[s.top];

x:

s.top:

C)s.top:

=s.top-1;

D)x:

64.有一组数据(15,9,7,8,20,-1,7,4),用堆排序的筛选方法建立的初始堆为(C)

A.-1,4,8,9,20,7,15,7B.-1,7,15,7,4,8,20,9

C.-1,4,7,8,20,15,7,9D.A,B,C均不对。

65.下述二叉树中,哪一种满足性质:

从任一结点出发到根的路径上所经过的结点序列按其关键字有序(D)。

A)二叉排序树B)哈夫曼树C)AVL树D)堆

66.下面给出的四种排序法中(D)排序法是不稳定性排序法。

A)插入B)冒泡C)二路归并D)快速排序

67.算法的时间复杂度取决于(A)

A.问题的规模B.待处理数据的初态C.A和BD.计算机cpu

68.有关静态链表的叙述:

(1)静态链表既有顺序存储的优点,又有动态链表的优点。

所以,它存取表中第i个元素的时间与i无关。

(2)静态链表中能容纳的元素个数的最大数在表定义时就确定了,以后不能增加。

(3)静态链表与动态链表在元素的插入、删除上类似,不需做元素的移动。

以上错误的是(B)

A.

(1),

(2)B.

(1)C.

(1),

(2),(3)D.

(2)

69.一个栈的输入序列为123…n,若输出序列的第一个元素是n,输出第i(1<

=n)个元素是(B)。

A.不确定B.n-i+1C.iD.n-i

70.下面关于串的的叙述中,哪一个是不正确的?

71.关于二叉树的叙述:

①只有一个结点的二叉树的度为0;

②二叉树的度为2;

③二叉树的左右子树可任意交换;

④深度为K的完全二叉树的结点个数小于或等于深度相同的满二叉树。

正确的是(D)

A.①②③B.②③④C.②④D.①④

72.用DFS遍历一个无环有向图,并在DFS算法退栈返回时打印相应的顶点,则输出的顶点序列是(A)。

A.逆拓扑有序B.拓扑有序C.无序的

73.对n个关键字的序列进行快速排序,平均情况下的空间复杂度为(B)

A.O

(1)B.O(logn)

C.O(n)D.O(nlogn)

二填空题

1、在单链表L中,指针p所指结点有后继结点的条件是:

p->

next!

=null

2、n(n大于1)个结点的各棵树中,其深度最小的那棵树的深度是_

(1)__。

它共有_

(2)__个叶子结点和_(3)__个非叶子结点,其中深度最大的那棵树的深度是_(4)__,它共有_(5)__个叶子结点和_(6)__个非叶子结点。

(1)2

(2)n-1(3)1(4)n(5)1(6)n-1

3、深度为9的完全二叉树最多有个结点

256应是511

4、二叉树由_

(1)__,__

(2)_,_(3)__三个基本单元组成。

.

(1)根结点

(2)左子树(3)右子树

5、先根遍历树林正好等同于按___遍历对应的二叉树.

先序

6、设只含根结点的二叉树的高度为0,则高度为k的二叉树的最大结点数为______,最小结点数为______。

(1)2K+1-1

(2)k+1

7、在有序表A[1..12]中,采用二分查找算法查等于A[12]的元素,所比较的元素下标依次为

6,9,11,12

8、设y指向二叉线索树的一叶子,x指向一待插入结点,现x作为y的左孩子插入,树中标志域为ltag和rtag,并规定标志为1是线索,则下面的一段算法将x插入并修改相应的线索,试补充完整:

(lchild,rchild分别代表左,右孩子)

x^.ltag:

=

(1)___;

x^.lchild:

=

(2)___;

y^.ltag:

=(3)___;

y^.lchild:

=(4)___;

x^.rtag:

=(5)___;

x^.rchild:

=(6)___;

IF(x^.lchild<

>

NIL)AND(x^lchild^.rtag=1)THENx^.lchild^.rchild:

=(7)___;

(1)1

(2)y^.lchild(3)0(4)x(5)1(6)y(7)x(本题按中序线索化)

9、有N个顶点的有向图,至少需要量_______条弧才能保证是连通的。

N-1

10、在顺序表(8,11,15,19,25,26,30,33,42,48,50)中,用二分(折半)法查找关键码值11,需做的关键码比较次数为

4

11、①二叉树用来表示表达式,因为需要保存各子树的值,修改二叉树的结点结构为(Lchild,Data,Val,Rchild)。

其中Lchild,Rchild的意义同前,Val用来存放以该结点为根的子树的值,值的类型依具体情况而定。

为了简便起见,算法假定所考虑的表达式只有+,-,*,/四种二目运算,且已表示成相应的二叉树。

算法所计算的表达式值放在根结点的Val域中。

PROCPostorder-eval(t:

ptrType)

BEGINIF(t!

=NULL)

BEGIN

(1)_______;

(2)_______;

CASEt^.data:

‘+’:

t^.Val:

=t^.Lchild^.Val+t^.Rchild^.Val;

BREAK;

‘-’:

=t^.Lchild^.Val-t^.Rchild^.Val;

‘*’:

=t^.Lchild^.Val*t^.Rchild^.Val;

‘/’:

=t^.Lchild^.Val/t^.Rchild^.Val;

otherwise:

(3)___;

ENDCASEEND

END;

②PROCDelete(x:

datatype,A:

tree)

BEGINtempA:

WHILE(tempA^.Item!

=x)AND(tempA!

=NULL)DO

IF(x<

t

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

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1