数据结构(查找)练习题与答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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-树中删除一个关键字会引起合并,则该节点原有()个关键字。
A.⌈m/2⌉
B.⌈m/2⌉-1
C.1
D.⌈m/2⌉+1
正确答案:B
解析: B、引起合并的节点应为关键字个数的下限。
18、以下关于哈希查找的叙述中错误的是()。
A.哈希函数选得好可以减少冲突现象
B.哈希函数H(k)=k MOD p,p通常取小于等于表长的素数
C.用拉链法解决冲突易引起堆积现象
D.用线性探测法解决冲突易引起堆积现象
正确答案:C
解析: C、用拉链法解决冲突时不存在堆积现象,只有用线性探测法解决冲突时易引起堆积现象。
19、以下关于哈希查找的叙述中正确的是()。
A.哈希表的装填因子等于表中填入的记录数除以哈希表的长度
B.采用拉链法解决冲突时,查找一个元素的时间是相同的
C.哈希表在查找成功时的平均查找长度仅仅与表长有关
D.哈希查找中不需要任何关键字的比较
正确答案:A
20、为提高哈希(Hash)表的查找效率,可以采取的正确措施是()。
Ⅰ.增大装填(载)因子
Ⅱ.设计冲突(碰撞)少的哈希函数
Ⅲ.处理冲突(碰撞)时避免产生堆积(堆积)现象
A.仅Ⅰ
B.仅Ⅱ
C.仅Ⅱ、Ⅲ
D.仅Ⅰ、Ⅱ
正确答案:C
解析: C、装填(载)因子α越大,发生冲突的可能性越大,所以Ⅰ错误。
因为哈希表是由哈希函数和处理冲突两部分组成的,查找效率与这两部分有关,所以Ⅱ和Ⅲ是正确的。