严魏敏-习题-查找-07

严魏敏习题

1.选择题

(1)对n个元素的表做顺序查找时,若查找每个元素的概率相同,则平均查找长度为(C)。

在这里插入图片描述

总查找次数:N=1+2+3+…+n=n(n+1)/2
则平均查找长度为:N/n=(n+1)/2

(2)适用于折半查找的表的存储方式,以及元素排列要求为( D )。
A. 链接方式存储,元素无序
B. 链接方式存储,元素有序
C. 顺序方式存储,元素无序
D. 顺序方式存储,元素有序

(3)如果要求一个线性表既能较快的查找,又能适应动态变化的要求,最好采用( C )查找法。

A. 顺序查找
B. 折半查找
C. 分块查找
D. 哈希查找

(4)折半查找有序表(4, 6, 10, 12, 20, 30, 50, 70, 88, 100)。若查找表中元素58,则它将依次与表中(A)比较大小,查找结果是失败。C

A. 20,70,30,50
B. 30,88,70,50
C. 20,50
D. 30,88,50

表中共10个元素
第一次取(1+10)/2=5
与第五个元素20比较
58大于20
再取(6+10)/2=8
与第八个元素70比较
依次类推再与30、50比较
最终查找失败。

(5)对22个记录的有序表作折半查找,当查找失败时,至少需要比较( B )次关键字。

A. 3
B. 4
C. 5
D. 6

22个记录的有序表
其折半查找的判定树深度为 ëlog222û + 1=5
且该判定树不是满二叉树,即查找失败时至多比较5次,至少比较4次。`

(6)折半查找与二叉排序树的时间性能(C)。

A. 相同
B. 完全不同
C. 有时不相同
D. 数量级都是O(log2n)

不一定相同。

二叉排序树不一定是平衡树,
它是只要求了左右子树与根结点存在大小关系,
但是对左右子树之间没有层次差异的约束,
因此通过二叉排序树进行查找不一定能够满足logn的,例如一棵只有多层左子树的而叉排序树。

只有是一棵平衡的二叉排序树时,其查找时间性能才和折半查找类似。

(7)分别以下列序列构造二叉排序树,与用其他三个序列所构造的结果不同的是( C )。

A. (100, 80, 90, 60, 120, 110, 130)
B. (100, 120, 110, 130, 80, 60, 90)
C. (100, 60, 80, 90, 120, 110, 130)
D. (100, 80, 60, 90, 120, 130, 110)

(8)在平衡二叉树中插入一个结点后造成了不平衡,设最低的不平衡结点为A,并已知A的左孩子的平衡因子为0,右孩子的平衡因子为1,则应作(C )型调整以使其平衡。

A. LL
B. LR
C. RL
D. RR

解析

(9)下列关于m阶B-树的说法错误的是( D)。

A. 根结点至多有m棵子树
B. 所有叶子都在同一层次上
C. 非叶结点至少有m/2(m为偶数)或m/2+1(m为奇数)棵子树
D. 根结点中的数据是有序的

(10)下面关于B-和B+树的叙述中,不正确的是(C)。

A. B-树和B+树都是平衡的多叉树
B. B-树和B+树都可用于文件的索引结构
C. B-树和B+树都能有效地支持顺序检索
D. B-树和B+树都能有效地支持随机检索

B树只支持随机搜索,B+ 树支持随机和顺序搜索。

(11)m阶B-树是一棵(B )。

A. m叉排序树
B. m叉平衡排序树
C. m−1叉平衡排序树
D. m+1叉平衡排序树

B-树是平衡的多路查找树,B+树是B-树的变形树

(12)下面关于散列查找的说法,正确的是(C)。

A. 散列函数构造的越复杂越好,因为这样随机性好,冲突小
B. 除留余数法是所有散列函数中最好的
C. 不存在特别好与坏的散列函数,要视情况而定
D. 散列表的平均查找长度有时也和记录总数有关

(13)下面关于散列查找的说法,不正确的是(A )。

A. 采用链地址法处理冲突时,查找任何一个元素的时间都相同
B. 采用链地址法处理冲突时,若插入规定总是在链首,则插入任一个元素的时间是相同的
C. 用链地址法处理冲突,不会引起二次聚集现象
D. 用链地址法处理冲突,适合表长不确定的情况

(14)设散列表长为14,散列函数是H(key)=key%11,表中已有数据的关键字为15, 38, 61, 84共四个,现要将关键字为49的元素加到表中,用二次探测法解决冲突,则放入的位置是( D )。

A. 3
B. 5
C. 8
D. 9

关键字15放入位置4,关键字38放入位置5,
关键字61放入位置6,关键字84放入位置7,
再添加关键字49,计算得到地址为5,冲突
用二次探测法解决冲突得到新地址为6,仍冲突,
再用用二次探测法解决冲突,得到新地址为4,仍冲突
再用用二次探测法解决冲突,得到新地址为9,不冲突,
即将关键字49放入位置9。

(15)采用线性探测法处理冲突,可能要探测多个位置,在查找成功的情况下,所探测的这些位置上的关键字( A)。
A. 不一定都是同义词
B. 一定都是同义词
C. 一定都不是同义词
D. 都相同

应用题

(1)假定对有序表:(3, 4, 5, 7, 24, 30, 42, 54,63, 72, 87, 95)进行折半查找,试回答下列问题。① 画出描述折半查找过程的判定树。② 若查找元素54,需依次与哪些元素比较?③ 若查找元素90,需依次与哪些元素比较?④ 假定每个元素的查找概率相等,求查找成功时的平均查找长度。

(2)在一棵空的二叉排序树中依次插入关键字序列为12, 7, 17, 11, 16, 2, 13, 9, 21, 4,请画出所得到的二叉排序树。

(3)已知如下所示长度为12的表:(Jan, Feb,Mar, Apr, May, June, July, Aug, Sep, Oct, Nov,Dec)。
① 试按表中元素的顺序依次插入一棵初始为空的二叉排序树,画出插入完成之后的二叉排序树,并求其在等概率的情况下查找成功的平均查找长度。
② 若对表中元素先进行排序构成有序表,求在等概率的情况下对此有序表进行折半查找时查找成功的平均查找长度。
③ 按表中元素顺序构造一棵平衡二叉排序树,并求其在等概率的情况下查找成功的平均查找长度。

(4)对图7.31所示的3阶B-树,依次执行下列操作,画出各步操作的结果。
在这里插入图片描述
① 插入90② 插入25③ 插入45④ 删除60

(5)设散列表的地址范围为0~17,散列函数为:H(key)=key%16。用线性探测法处理冲突,输入关键字序列:(10, 24, 32, 17, 31, 30, 46, 47, 40, 63,49),构造散列表,试回答下列问题:① 画出散列表的示意图。② 若查找关键字63,需要依次与哪些关键字进行比较?③ 若查找关键字60,需要依次与哪些关键字进行比较?④ 假定每个关键字的查找概率相等,求查找成功时的平均查找长度。

(6)设有一组关键字(9, 1, 23, 14, 55, 20, 84,27),采用散列函数:H(key)=key%7,表长为10,用开放地址法的二次探测法处理冲突。要求:对该关键字序列构造散列表,并计算查找成功的平均查找长度。

(7)设散列函数H(K)=3 K % 11,散列地址空间为0~10,对关键字序列(32, 13, 49, 24, 38, 21, 4,12),按下述两种解决冲突的方法构造散列表,并分别求出等概率下查找成功时和查找失败时的平均查找长度ASLsucc和ASLunsucc。
① 线性探测法。② 链地址法。

算法设计题

(1)试写出折半查找的递归算法。
(2)试写一个判别给定二叉树是否为二叉排序树的算法。
(3)已知二叉排序树采用二叉链表存储结构,根结点的指针为T,链结点的结构为(lchild, data,rchild),其中lchild、rchild分别指向该结点左、右孩子的指针,data域存放结点的数据信息。请写出递归算法,从小到大输出二叉排序树中所有数据值≥x的结点的数据。要求先找到第一个满足条件的结点后,再依次输出其他满足条件的结点。
(4)已知二叉树T的结点形式为(llink, data, count,rlink),在树中查找值为X的结点,若找到,则记数(count)加1;否则,作为一个新结点插入树中,插入后仍为二叉排序树,写出其非递归算法。
(5)假设一棵平衡二叉树的每个结点都标明了平衡因子b,试设计一个算法,求平衡二叉树的高度。
(6)分别写出在散列表中插入和删除关键字为K的一个记录的算法,设散列函数为H,解决冲突的方法为链地址法。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值