数据结构(查找)练习题与答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1、静态查找表和动态查找表的区别是()。

A.所包含的数据元素的类型不同

B.施加其上的操作不同

C.它们的逻辑结构相同

D.以上都不对

正确答案:B

解析: B、若在查找的同时对表做修改操作(如插入和删除),则相应的查找表称之

为动态查找表。若在查找中不涉及表的修改操作,则相应的查找表称之为静态查找表。

2、顺序查找法适合于存储结构为()的线性表。

A.索引存储

B.压缩存储

C.顺序存储或链式存储

D.哈希存储

正确答案:C

解析: C、顺序查找可以从前向后或从后向前依次查找,既适合于顺序存储结构也适

合于链式存储结构。

3、采用顺序查找方法查找长度为n的顺序表时,在等概率时成功查找的平均查找长度为()。

A.(n-1)/2

B.n

C.n/2

D.(n+1)/2

正确答案:D

解析: D、顺序查找时,元素ai需i次比较,成功查找的平均查找长度=(1+2+…

+n)/n=(n+1)/2。

4、采用顺序查找方法查找长度为n的顺序表时,在等概率时不成功查找的平均查找长度为()。

A.(n-1)/2

B.n

C.n/2

D.(n+1)/2

正确答案:B

解析: B、当查找的元素不在线性表中时,均需要n次元素之间的比较。

5、适合于折半查找的数据组织方式是()。

A.以链表存储的有序线性表

B.以顺序表存储的有序线性表

C.以链表存储的线性表

D.以顺序表存储的线性表

正确答案:B

解析: B、折半查找的数据必须是有序的。另外,折半查找中需要确定查找区间,这要求存储结构最好具有随机存取特性,而顺序表满足这个特性。

6、采用折半查找方法查找长度为n的线性表,当n很大时,在等概率时不成功查找的平均查找长度为()。

A. O(nlog2n)

B. O(n2)

C. O(n)

D. O(log2n)

正确答案:D

解析: D、采用折半查找时,若n很大,对应的判定树可以看成是一棵满二叉树,失败节点(外部节点)集中在最下一层,落在每个失败节点时比较的次都均为log2n。

7、设有100个元素的有序表,采用折半查找方法,在等概率时成功时最大的比较次数是()。

A.50

B.25

C.10

D.7

正确答案:D

解析: D、成功时最大比较次数为log2(n+1)(取上界)= log2(101)(取上界)=7。

8、已知一个长度为16的顺序表,其元素按关键字有序排序,若采用折半查找法查找一个存在的元素,则比较的次数最多是()。

A.6

B.5

C.4

D.7

正确答案:B

解析: B、n=16,采用折半查找法查找一个存在的元素,即为成功查找。成功查找的最多比较次数=log2(n+1)(取上界)=log2(17)(取上界)=5。

9、一个递增有序表为R[0..11],采用折半查找方法进行查找,在一次不成功查找中,以下()是不可能的记录比较序列。

A.R[5]、R[8]、R[6]、R[7]

B.R[5]、R[8]、R[10]

C.R[5]、R[2]、R[3]

D.R[5]、R[8]、R[6]

正确答案:B

解析: B、画出递增有序表R[0..11]采用折半查找对应的判定树,一次失败的查找必须到达某个外部节点,而R[5]、R[8]、R[10]序列没有到达任何外部节点。

10、对有3600个记录的索引顺序表(分块表)进行分块查找,最理想的块长是()

A.⌈log23600⌉

B.1800

C.60

D.1200

正确答案:C

解析: C、n=3600,分块查找最理想的块长=sqrt(n)=sqrt(3600)=60。

11、二叉排序中,按()遍历二叉排序得到的序列是一个有序序列。

A.后序

B.先序

C.中序

D.层次

正确答案:C

解析: C、二叉排序的中序遍历序列恰好是一个递增有序序列。

12、在含有27个节点的二叉排序树上,查找关键字为35的节点,则依次比较的关键

字有可能是()。

A.46,36,18,28,35

B.18,36,28,46,35

C.28,36,18,46,35

D.46,28,18,36,35

正确答案:A

解析: A、画出各选项对应的查找树,从中看到只有选项D对应的查找树构成一棵二叉排序树,可以作为一棵二叉排序树的一部分,其他查找树均不构成一棵二叉排序树。

13、以下关于二叉排序树的叙述中正确的是()。

A.二叉排序树是动态树表,在插入新节点时会引起树的重新分裂和合并

B.在二叉排序树中进行查找,关键字的比较次数不超过节点数的一半

C.对二叉排序树进行层次遍历可以得到一个有序序列

D.在构造二叉排序树时,若关键字序列有序,则二叉排序树的高度最大

正确答案:D

14、有一棵含有8个节点的二叉排序树,其节点值为A~H,以下()是其后序遍历

结果。

A.BCAGEHFD

B.BDACEFHG

C.BCAEFDHG

D.ADBCEGFH

正确答案:C

解析:C、该二叉排序树的中序序列为ABCDEFGH,后序序列应是A~H的出栈序列,其中选项A、B和D都不是合法的出栈序列,只有选项C是合法的出栈序列。

15、具有5层节点的AVL树至少有()个节点。

A.10

B.17

C.15

D.12

正确答案:D

解析: D、设Nh表示高度为h的平衡二叉树中含有的最少节点数,有:

N1=1,N2=2,Nh=Nh-1+Nh-2+1

由此,求出N5=12。

16、以下关于m阶B-树的叙述中正确的是()。

A.树中每个节点至多有⌈m/2⌉-1个关键字

B.所有叶子节点均在同一层上

C.当插入一个关键字引起B-树节点分裂时,树增高一层

D.每个节点至少有两棵非空子树

正确答案:B

解析: B、选项A错误,因为m阶B-树可能只有一个根节点。选项B错误,在m阶

B-树中,除根节点外,每个节点至少有m/2(取上界)-1个关键字。选项D错误,当

插入一个关键字引起B-树节点分裂时,树不一定会增高一层,只有节点分裂延续到根

节点,根节点也分裂后,树才会增高一层。

17、在一棵m阶B-树中删除一个关键字会引起合并,则该节点原有()个关键字。

相关文档
最新文档