数据结构选择题——查找


1、在平衡二叉树中插图一个结点后造成了不平衡,设最低的不平衡点为A,并已知A的左孩子的平衡因子为0,A的右孩子的平衡因子为-1,则应该做()型调整以使其平衡。
A、LL
B、LR
C、RL
D、RR

答案:D

根据题意,设根结点为A,构造满足题意的最简单二叉树,(平衡因子:左子树和右子树的深度之差)得到如下的二叉树:

其中,找到导致不平衡的叶子结点,沿着该节点向不平衡结点即根结点A的路径找到根结点已经距离根结点最近的两个结点(A,-1,1这三个就是要调整的结点),这三个节点之间的连接是右分支,右分支,即RR

2、若平衡二叉树的高度为5,且所有非叶子结点的平衡因子均为1,则该平衡二叉树的结点总数为()
A、10
B、12
C、20
D、32

答案:B

根据题意直接画出该树:先画出所有最左结点,后构造整棵树:

得到12个结点。

3、对于长度为n的有序单链表,若查找每个元素的概率相等,则顺序查找表中任一元素的查找成功的平均查找长度为(    )
A、n/2
B、(n+1)/2
C、(n-1)/2
D、n/4

答案:B

平均查找长度:需要和给定值比较的关键字个数的期望

等概率下,顺序查找平均查找长度为(n+1)/2

4、下面有关查找性能方面的叙述种错误的是(   )
A、查找成功的平均查找长度是指找到指定元素所需比较关键字的比较次数的期望值。
B、查找不成功的平均查找长度是指没有找到指定元素,但找到该元素插入位置所需关键字比较次数的期望值。
C、平均查找长度与元素的查找概率无关
D、平均查找长度与元素在结构中的分布情况有关。

答案·:C

对于C:平均查找长度与元素的查找概率是有关的。在等概率查找的情况下,对于查找成功,平均查找长度是指找到指定元素所需比较关键字的比较次数的期望值;对于查找不成功,平均查找长度是指没有找到指定元素,但找到该元素插入位置所需关键字比较次数的期望值。

5、设一个元素集合有n(n>1)个元素,分别存放在两个表中,表A按元素的关键子从小到大存放,表B则无序存放。若对表A按有序表的顺序查找算法,对表B按一般表的顺序查找算法从表的前端顺序查找。设查找表中每个元素的查找概率相同,则在两个表中平均查找长度为( )
A、表A大于表B
B、表A小于表B
C、表A与表B相同
D、谁大谁小不确定

答案:C

见第三题:等概率下,顺序查找平均查找长度为(n+1)/2

6、对于长度为18的有序顺序表,若采用折半查找,则查找第15个元素(计数从1开始)的查找次数为( )
A、3
B、4
C、5
D、6

答案:B

1-18号元素,第一次:对比9,范围10-18,

第二次:对比10+(18-10)/2=14,范围15-18,

第三次:对比15+3/2=16(向下取整),范围15

第四次:15,成功

7、下列选项中不能构成折半查找中关键字比较序列的是(  )
A、500,200,450,180
B、500,450,200,180
C、180,500,200,450
D、180,200,500,450

答案:A

折半查找应使查找范围越来越小,而A选项:对比500,向下,对比200,向上,此时范围200~500,对比450,向下,范围200~450,此时下一个为180,扩大了范围,错误

8、折半查找与二叉排序树的时间性能(  )
A、相同
B、有时不相同
C、完全不相同
D、不定

答案:B

具体分析不同情况,有相同有不同,不予举例

9、二叉树为二叉排序树的(   )条件是其任一结点的值均大于其左子女的值,小于其右子女的值
A、充分不必要
B、必要不充分
C、充分必要
D、既不充分也不必要

答案:B

反例:在下图的树中,每个结点的值都大于左子女的值,小于又子女的值,但不是二叉排序树,因为3的右子树大于了3的双亲结点。不满足二叉排序树的定义,但如果是二叉排序树,一定满足任一结点的值均大于其左子女的值,小于其右子女的值

因此,二叉树为二叉排序树能得出任一结点的值均大于其左子女的值,小于其右子女的值

但其任一结点的值均大于其左子女的值,小于其右子女的值不能得出二叉树为二叉排序树

10、利用逐个数据插入的方法建立序列{35,45,25,55,50,10,15,30,40,20}对应的二叉排序树后,查找元素20需要进行( )次元素之间的比较。
A、4
B、5
C、7
D、10

答案:B

逐个插入构建二叉排序树:

查找:1次比较35,2次比较25,3次比较10,4次比较15,5次比较20成功

11、设任意一棵非空的二叉排序树T1中,删除某结点v之后形成的二叉排序树T2,再将v 插入T2形成二叉排序树T3.下列关于T1与T3的叙述中正确的是:
    1若v是T1的叶节点,则T1与T3不同。
    2若v是T1的叶节点,则T1与T3相同。
    3若v不是T1的叶节点,则T1与T3不同。
    4若v不是T1的叶节点,则T1与T3相同。
A、仅1,3
B、仅1,4
C、仅2,3
D、仅2,4

答案:C

叶结点删除后再加入还原到原位置,非叶结点删除后,原位置被其他结点代替,无法还原

12、在顺序存储的线性表R[n]上进行顺序查找,设查找成功和查找不成功的概率相等,各占1/2,则总平均查找长度为(  )
A、(n+1)/2
B、3(n+1)/4
C、n
D、n(n+1)/2

查找不成功时,比较次数为n+1,由于每个几率概率相等,则平均概率为1/2n由题意得出:

13、当在一个有序的顺序表上进行查找时,既可以使用顺序查找,也可以使用折半查找,前者的查找速度(  )
A、一定没有后者快
B、取决于表是递增的还是递减的
C、在平均情况下比后者快
D、在平均情况下比后者慢

答案:D

元素个数较多时,一般折半查找较快,但一些特殊情况,可能相同或更慢

14、已知一个长度为16的顺序表L,其元素按照关键字有序排列。若采用折半查找法查找一个L中不存在的元素,则关键字比较次数最多为(  )次。
A、6
B、7
C、4
D、5

答案:D

假设查找的数为17,第一次:8,范围变为9-16,第二次:9+(16-9)/2=12向下取整,范围13~16,第三次:14,范围15~16,第四次15,第五次16,结束

15、当采用分块查找时,数据的组织方式为(  )
A、数据分成若干块,每块内数据有序。
B、数据分成若干块,每块内数据不必有序,但块间必须有序,每块内最大(或最小)的数据组成索引块
C、数据分成若干块,每块内数据有序,但块间必须有序,每块内最大(或最小)的数据组成索引块
D、数据分成若干块,每块(除最后一块外)数据个数相等。

答案:B

分块查找的特点如下:
分块查找适用于大规模的数据集合,可以提高查找效率。
分块查找的块内元素可以无序,这样可以减少数据的排序操作,提高了查找的效率。
分块查找要求块之间必须是有序的,这样可以通过比较块的最大值和最小值来确定查找的范围,进一步提高了查找的效率。
分块查找的基本思想是:
将数据分为若干块,每一块包含一定数量的元素。
块内元素可以无序,但块之间必须是有序的。
根据查找的关键字,确定在哪一块中进行查找。
在确定的块中进行顺序查找或其他查找算法。

16、在二叉排序树中,关键字最小的结点的(  )
A、左指针一定为空。
B、右指针一定为空
C、左右指针均为空
D、左右指针均不为空

答案:A

该节点为关键字最小的结点,允许有右孩子,右孩子比它大,不允许有左孩子,因为它本身已经是最小的结点

17、构造一棵具有n个结点的二叉排序树,在理想情况下树的深度为( )
A、n/2
B、n
C、⌊log2(n+1)⌋
D、 ⌈log2(n+1)⌉

答案:D

对于二叉排序数,最理想的情况应是一棵完全二叉树或接近完全二叉树的树,即所有叶子结点都在最下层或倒数第二层

18、高度为7的AVL树最多有( )结点。
A、63
B、64
C、65
D、127

答案:D

求最多结点,即一棵七层满二叉树

19、已知一个长度为15的顺序表L,其元素按关键字大小有序排列。若采用折半查找法查找一个不存在的元素,则比较次数最多的是(     )
A、4
B、5
C、6
D、7

答案:A

同14题,经比较,共比较4次,一次:8,范围9-15,二次:12,范围13~15,三次14,四次15,结束。

20、向一棵平衡二叉树上插入一元素时,可能要对最小不平衡子树进行调整,此调整分为( )种旋转类型。
A、2
B、3
C、4
D、5

答案:C

LR,LL,RR,RL

21、含有n个非终端结点的m阶B 树的关键字的个数最少是(   )
A、n
B、(m-1)xn
C、nx(⌈m/2⌉-1)
D、(n-1)X(⌈m/2⌉-1)+1

答案:D

除根节点外,所有非终端结点至少有┌m/2┐棵子树,其中包含┌m/2┐-1个关键字,这样的结点共有n-1个(除去根结点),根结点有一个因此关键词+1,最终结果(n-1)*(┌m/2┐-1)-1

22、在一棵高度为h的B树中插入一个新的关键字时,为查找插入位置,需读取的结点数为(  )
A、h-1
B、h
C、h+1
D、h+2

答案:B

从根结点开始,比较插入的关键字与当前关键字,小与则向左子树访问,大于向右子树,重复比较步骤,可得每层比较一次,共比较h次

23、如果在一棵m阶B 树中删除关键字导致结点需要与其右兄弟或左兄弟结点合并,那么被删关键字所在结点(根节点除外)的关键字数在删除之前应为(  )
A、⌈m/2⌉
B、⌈m/2⌉-1
C、⌊m/2⌋
D、⌊m/2⌋-1

答案:B

除根之外每个非终端节点至少含有┌m/2┐棵子树即┌m/2┐-1个关键字,少于这个数就要合并

24、下面关于B树B+树的叙述错误的是(  )
A、B树和B+树都是平衡的多叉查找树。
B、B树和B+树都可用于文件的索引结构。
C、B树和B+树都能有效地支持顺序查找。
D、B树和B+树都能有效地支持随机查找。

答案:C

B树和B+树都是平衡的多叉查找树,它们都可以用于文件的索引结构,并且都能有效地支持随机查找。但是,由于B树和B+树的节点中包含了指向子节点的指针,而不是直接存储数据,所以在进行顺序查找时,需要遍历整个树来找到目标数据,效率较低。因此,B树和B+树并不适合用于顺序查找

25、以下说法中,不符合m阶B树定义要求的是(  )
A、根节点最多m棵子树。
B、所有叶子节点都在同一层上。
C、各节点内关键字均升序或降序排列。
D、叶节点之间通过指针链接。

答案:D

26、从19个元素中查找其中任意一个元素,如果最多进行4次元素之间的比较,则采用的查找方法只可能是( )
A、分块查找
B、折半查找
C、散列查找
D、二叉排序树

答案:B

折半查找最坏情况log2(n)+1,log2(19)+1=4(向下取整)

27、以下二叉树中,( )是完全二叉树。
A、AVL树
B、满二叉树
C、单支二叉树
D、二叉排序树

答案:B

28、以下二叉排序树中查找效率最高的是(  )
A、AVL树
B、所有结点都没有右子女的二叉排序树
C、右子树为空的二叉排序树
D、所有结点都没有左子女的二叉排序树

答案:A

29、若散列表采用开地址法解决冲突,发生堆积的原因主要是(  )
A、表中装入过多的记录
B、选择解决冲突的方法不适当
C、散列函数计算出的地址分布不均匀
D、装填因子过大

答案:B

30、以下关于散列表的说法正确的是(  )
A、所有记录都按关键码有序排列
B、所有记录可以顺序存取
C、存取速度快但占用存储空间较多
D、若装填因子小,查找速度可达线性级

答案:C

不按关键码有序排列,无序,不是顺序存取是直接存取,装填因子小可接近线性级,但过小反而会导致速度降低。

1、设散列表长m=14,散列函数Hash(key)=key % 11。表中已有4个结点,地址分别为addr(15)=4, addr(38)=5,addr(61)=6,addr(84)=7,其余地址为空。如用二次探测法解决冲突,关键字值为49的散列地址为(  )
A、8
B、3
C、5
D、9

答案:D

第一次探测: addr(49) + 0^2 = 5 + 0 = 5 地址5已经被占用,继续探测。

第二次探测: addr(49) + 1^2 = 5 + 1 = 6 地址6已经被占用,继续探测。

第三次探测: addr(49) + 2^2 = 5 + 4 = 9 地址9为空,找到了关键字值为49的散列地址。

2、若将10个元素散列到容量为100000个元素的散列表中,则(  )产生冲突。
A、一定会
B、一定不会
C、仍可能会
D、以上都不对

答案:C

概率问题,并不绝对

3、已知一个线性序列{38,25,74,63,52,48},假定采用散列函数Hash(key)=key % 7 计算散列地址,并散列存储在散列表A[10]中,若采用线性探测法解决冲突,且个元素的查找概率相等,则在该散列表中查找成功的平均查找长度为(  )
A、1.50
B、1.67
C、1.83
D、2.24

答案:C

38%7=3,不冲突,一次。

25%7=4,不冲突,一次。

74%7=4,冲突,偏移得5,不冲突,二次。

63%7=0,不冲突,一次。

52%7=3,冲突,偏移得4,冲突,偏移得5,冲突,偏移得6,不冲突,四次。

48%7=6,冲突,偏移得7,不冲突,二次。

累加得11次,6个元素,11÷6=1.83

4、已知一棵3阶B树,如图所示,删除关键字78得到一个新的B树,

,

其最右叶结点中关键字是(  )
A、60
B、60,62
C、62,65
D、65

答案:D

5、有一棵具有15个关键字的4阶B树,则含有关键字的结点数最多是(  )
A、5
B、6
C、10
D、15

答案:D

4阶,非根非终端结点最少子树为2,即1个关键字,因此结点数最多关键字数目是15

6、在一棵高度为2的5阶B树中,所含关键字的个数最少是(  )
A、5
B、7
C、8
D、14

答案:A

5阶,非根非终端子树最少为3,即2关键字,求最少,则根结点有2个子结点,各含2个,加上根结点1个共5个。

7、已知一棵5阶B树有53个关键字,并且每个结点的关键字都达到最少,则该树的高度是(  )
A、3
B、4
C、5
D、6

答案:B

根有1个关键字。其余每个结点最少关键字为2(5/2向上取整,再减去1,见21题),共26个非根非叶结点。每个结点有3个子节点,画图或通过计算可得高度为4

8、随着散列表的装填因子a 的增大,查找表中指定元素的平均查找长度也要增大,可以平稳控制平均查找长度的增大幅度达到最小的解决冲突的方法是( )
A、线性探测法
B、二次探测法
C、双散列法
D、链地址法

答案:D

见图中对比

9、散列表采用链地址法解决冲突,查找成功的平均查找长度( )
A、直接与关键字个数有关
B、直接与表的长度有关
C、直接与装填因子有关
D、直接与散列函数有关

答案:C

见上题38

10、在如图所示的AVL树中,插入关键字22后,关键字24所在结点的左右子结点中保存的关键字是

,


A、20,53
B、22,53
C、13,53
D、20,22

答案:B

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

D D D D C

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值