武汉大学数据结构MOOC第12周测验

1单选(2分)‎静态查找表和动态查找表的区别是( )。
A.所包含的数据元素的类型不同
B.施加其上的操作不同
C.它们的逻辑结构相同
D.以上都不对
正确答案:B
解析: B、若在查找的同时对表做修改操作(如插入和删除),则相应的查找表称之为动态查找表。若在查找中不涉及表的修改操作,则相应的查找表称之为静态查找表。

2单选(2分)‎顺序查找法适合于存储结构为( )的线性表。
A.索引存储
B.顺序存储或链式存储
C.哈希存储
D.压缩存储
正确答案:B
解析: B、顺序查找可以从前向后或从后向前依次查找,既适合于顺序存储结构也适合于链式存储结构。

课本考据:
1、线性表的顺序存储结构是把线性表中的所有元素按照其逻辑顺序依次存储到计算机存储器中指定存储位置开始的一块i连续的存储空间。
2、线性表的链式存储结构称为链表,其中每个存储结点不仅包含元素本身的信息(数据域),而且包含表示元素之间逻辑关系的信息。
3、线性表有顺序和链式两种存储结构。
4、索引存储结构是在存储数据的同时还建立附加的索引表。

3单选(2分)‍采用顺序查找方法查找长度为n的顺序表时,在等概率时成功查找的平均查找长度为( )。
A.n/2
B.n
C.(n-1)/2
D.(n+1)/2
正确答案:D
解析: D、顺序查找时,元素ai需i次比较,成功查找的平均查找长度=(1+2+…+n)/n=(n+1)/2。

课本考据:顺序查找方法在查找成功时的平均比较次数约为表长的一半。

4单选(2分)‏采用顺序查找方法查找长度为n的顺序表时,在等概率时不成功查找的平均查找长度为( )。
A.n/2
B.(n-1)/2
C.n
D.(n+1)/2
正确答案:C
解析: C、当查找的元素不在线性表中时,均需要n次元素之间的比较。

5单选(2分)‏适合于折半查找的数据组织方式是( )。
A.以链表存储的线性表
B.以顺序表存储的线性表
C.以顺序表存储的有序线性表
D.以链表存储的有序线性表
正确答案:C
解析: C、折半查找的数据必须是有序的。另外,折半查找中需要确定查找区间,这要求存储结构最好具有随机存取特性,而顺序表满足这个特性。

课本考据:折半查找又称二分查找,要求线性表示有序表,即表中的元素按关键字有序。

6单选(2分)​采用折半查找方法查找长度为n的线性表,当n很大时,在等概率时不成功查找的平均查找长度为( )。
A.O(log2n)
B.O(nlog2n)
C.O(n2)
D.O(n)
正确答案:A
解析: A、采用折半查找时,若n很大,对应的判定树可以看成是一棵满二叉树,失败节点(外部节点)集中在最下一层,落在每个失败节点时比较的次都均为log2n。

课本考据:失败的折半查找的过程是经历了一条从判定树根到某个外部结点的路径,所需的关键字比较次数是该路径上内部结点的总数。

7单选(2分)‎设有100个元素的有序表,采用折半查找方法,在等概率时成功时最大的比较次数是( )。
A.50
B.25
C.10
D.7
正确答案:D
解析: D、成功时最大比较次数为log2(n+1)(取上界)= log2(101)(取上界)=7。

课本考据:一般情况下,判定树中度数小于2的结点只能在最下面的两层上(不计外部结点),所以n个结点的判定树高度和n个节点的完全二叉树高度相同,即为log2(n+1)。

8单选(2分)​已知一个长度为16的顺序表,其元素按关键字有序排序,若采用折半查找法查找一个存在的元素,则比较的次数最多是( )。
A.7
B.4
C.5
D.6
正确答案:C
解析: C、n=16,采用折半查找法查找一个存在的元素,即为成功查找。成功查找的最多比较次数=log2(n+1)(取上界)=log2(17)(取上界)=5。

9单选(2分)‌一个递增有序表为R[0…11],采用折半查找方法进行查找,在一次不成功查找中,以下( )是不可能的记录比较序列。
A.R[5]、R[8]、R[6]、R[7]
B.R[5]、R[2]、R[3]
C.R[5]、R[8]、R[10]
D.R[5]、R[8]、R[6]
正确答案:C
解析: C、画出递增有序表R[0…11]采用折半查找对应的判定树,一次失败的查找必须到达某个外部节点,而R[5]、R[8]、R[10]序列没有到达任何外部节点。
在这里插入图片描述
课本考据:折半查找的基本思路是设R[low,high]是当前的查找区间,首先确定该区间的中点位置mid=[(low+high)/2],然后将待查的k值与R[mid].key比较:
(1)若k=R[mid].key,则查找成功并返回该元素的逻辑序号。
(2)若k<R[mid].key,则由表的有序性可知R[mid…high].key均大于k,因此若表中存在关键字等于k的元素,则该元素必定是在位置mid左边的子表R[low…mid-1]中,故新的查找区间是左子表R[low…mid-1]。
(3)若k>R[mid].key,则关键字为k的元素必在mid的右子表R[mid+1…high]中,即新的查找区间是右子表R[mid+1…high]。下一次查找是针对新的查找区间进行的。

综上所述,可以从初始的查找区间R[0…n-1]开始,每经过一次与当前查找区间的中点位置上的关键字比较,就可确定查找是否成功,不成功则当前的查找区间缩小一半。重复比较来确定查找成功与失败。

10单选(2分)‏对有3600个记录的索引顺序表(分块表)进行分块查找,最理想的块长是( )
A.[log23600]
B.1800
C.60
D.1200
正确答案:C
解析: C、n=3600,分块查找最理想的块长=sqrt(n)=sqrt(3600)=60。

课本考据:当s=sqrt(n)时,ASL’blk取极小值sqrt(n)+1,即当采用顺序查找确定块时各块中的元素数选定为sqrt(n)时效果最佳。

11单选(2分)‌二叉排序中,按( )遍历二叉排序得到的序列是一个有序序列。
A.中序
B.后序
C.先序
D.层次
正确答案:A
解析: A、二叉排序的中序遍历序列恰好是一个递增有序序列。

二叉排序树(BST)的性质:
1、若根节点的左子树非空,则左子树上的所有结点关键字均小于根节点关键字。
2、若根节点的右子树非空,则右子树上的所有结点关键字均大于根结点关键字。
3、根结点的左右子树本身又各是一棵二叉排序树。
由性质可知,按中序遍历该树所得的中序序列是一个递增有序序列。

12单选(2分)‍在含有27个节点的二叉排序树上,查找关键字为35的节点,则依次比较的关键字有可能是( )。
A.46,36,18,28,35
B.46,28,18,36,35
C.18,36,28,46,35
D.28,36,18,46,35
正确答案:A
解析: A、画出各选项对应的查找树,从中看到只有选项D对应的查找树构成一棵二叉排序树,可以作为一棵二叉排序树的一部分,其他查找树均不构成一棵二叉排序树。
在这里插入图片描述

13单选(2分)‍以下关于二叉排序树的叙述中正确的是( )。
A.在二叉排序树中进行查找,关键字的比较次数不超过节点数的一半
B.二叉排序树是动态树表,在插入新节点时会引起树的重新分裂和合并
C.对二叉排序树进行层次遍历可以得到一个有序序列
D.在构造二叉排序树时,若关键字序列有序,则二叉排序树的高度最大
正确答案:D
解析: D、选项A错误,二叉排序树中不存在重新分裂和合并操作。选项B错误,对二叉排序树进行中序遍历才可以得到一个有序序列。选项D错误,在二叉排序树中进行查找时关键字的比较次数可能达到n次。

14单选(2分)‎有一棵含有8个节点的二叉排序树,其节点值为A~H,以下( )是其后序遍历结果。
A.BCAEFDHG
B.BCAGEHFD
C.ADBCEGFH
D.BDACEFHG
正确答案:A
解析: A、该二叉排序树的中序序列为ABCDEFGH,后序序列应是A~H的出栈序列,其中选项A、B和D都不是合法的出栈序列,只有选项C是合法的出栈序列。

15单选(2分)‍具有5层节点的AVL树至少有( )个节点。
A.17
B.10
C.12
D.15
正确答案:C
解析: C、设Nh表示高度为h的平衡二叉树中含有的最少节点数,有:N1=1,N2=2,Nh=Nh-1+Nh-2+1由此,求出N5=12。

16单选(2分)‎以下关于m阶B-树的叙述中正确的是( )。
A.树中每个节点至多有ém/2ù-1个关键字
B.当插入一个关键字引起B-树节点分裂时,树增高一层
C.所有叶子节点均在同一层上
D.每个节点至少有两棵非空子树
正确答案:C
解析: C、选项A错误,因为m阶B-树可能只有一个根节点。选项B错误,在m阶B-树中,除根节点外,每个节点至少有m/2(取上界)-1个关键字。选项D错误,当插入一个关键字引起B-树节点分裂时,树不一定会增高一层,只有节点分裂延续到根节点,根节点也分裂后,树才会增高一层。

17单选(2分)‌在一棵m阶B-树中删除一个关键字会引起合并,则该节点原有( )个关键字。
A.[m/2]-1
B.[m/2]+1
C.1
D.[m/2]
正确答案:A
解析: A、引起合并的节点应为关键字个数的下限。

18单选(2分)‏以下关于哈希查找的叙述中错误的是( )。
A.哈希函数H(k)=k MOD p,p通常取小于等于表长的素数
B.用线性探测法解决冲突易引起堆积现象
C.哈希函数选得好可以减少冲突现象
D.用拉链法解决冲突易引起堆积现象
正确答案:D
解析: D、用拉链法解决冲突时不存在堆积现象,只有用线性探测法解决冲突时易引起堆积现象。
在这里插入图片描述
19单选(2分)‎以下关于哈希查找的叙述中正确的是( )。
A.哈希查找中不需要任何关键字的比较
B.采用拉链法解决冲突时,查找一个元素的时间是相同的
C.哈希表在查找成功时的平均查找长度仅仅与表长有关
D.哈希表的装填因子等于表中填入的记录数除以哈希表的长度
正确答案:D

20单选(2分)​为提高哈希(Hash)表的查找效率,可以采取的正确措施是( )。
​Ⅰ.增大装填(载)因子​
​Ⅱ.设计冲突(碰撞)少的哈希函数​
​Ⅲ.处理冲突(碰撞)时避免产生堆积(堆积)现象

A.仅Ⅰ、Ⅱ
B.仅Ⅰ
C.仅Ⅱ、Ⅲ
D.仅Ⅱ
正确答案:C
解析: C、装填(载)因子α越大,发生冲突的可能性越大,所以Ⅰ错误。因为哈希表是由哈希函数和处理冲突两部分组成的,查找效率与这两部分有关,所以Ⅱ和Ⅲ是正确的。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值