常见概念:
1.列表:由同一类型的数据元素(或记录)构成的集合,可以利用任意数据结构实现
2.基于线性表的查找方法:顺序查找法、折半查找法、分块查找法
? a.顺序查找法:用所给的关键字与线性表中各元素的关键字逐个比较,直到成功或失败。存储结构通常为顺序结构也可以为链式结构。
? b.折半查找法:对列表有两个要求:必须采用顺序存储结构、必须按关键字大小有序排列。
? c.分块查找法:略
3.基于树的查找方法:二叉排序树,平衡二叉排序树(AVL树)、B树
4.哈希:略
A.必须大于等于原散列地址
B.必须小于等于原散列地址
C.可以大于或小于但不等于原散列地址
D.对地址在何处没有限制
1.常用的解决冲突的方法:开放定址法(再散列法)、再哈希法、链地址法、建立公共溢出区法;
2.开放定址法中由于增量序列的取值方式不同,相应的再散列方式也不同
a.线性探测再散列
b.二次探测再散列
c.伪随机探测再散列
3.原因:
线性探测法是一种常用的解决散列冲突的方法。当发生冲突时,线性探测法会依次检查散列地址的下一个位置,直到找到一个空闲的位置来存储冲突的元素。
在线性探测法中,如果发生冲突,即要插入的位置已经被占用,那么会继续向后查找下一个位置,直到找到一个空闲的位置。这个查找的过程是按照一定的规则进行的,通常是按照线性递增的方式,即每次查找的位置是当前位置的下一个位置。
因此,当发生冲突时,线性探测法所产生的一系列后继散列地址可以大于或小于原散列地址,但不会等于原散列地址。这是因为线性探测法是按照线性递增的方式进行查找,所以后继散列地址会逐渐向后移动,直到找到一个空闲的位置。
总结起来,线性探测法解决冲突时所产生的一系列后继散列地址可以大于或小于但不等于原散列地址,是因为线性探测法按照线性递增的方式进行查找空闲位置。这种方法可以有效地解决散列冲突,但可能会导致散列表的装载因子增加,从而影响查找的效率。
A.前序遍历
B.后序遍历
C.中序遍历
D.层次遍历
二叉搜索树:若它的左子树非空,则左子树上所有结点的值均小于根结点的值;若它的右子树非空,则右子树上所有结点的值均大于根结点的值。
若要得到从小到大的排序,即 左 根 右 ;即中序遍历
A.4
B.5
C.6
D.7
若查找一个L中不存在的元素
1.8 16
2.12 16
3.14 16
4 16 16
5.
即:log2(n)+1=4+1=5;
A.7
B.10
C.50
D.99
【log2(100)】+1=7
A.8
B.9
C.10
D.11
由题意可知
将第一次没有起冲突的先放进去并标红
26%17=9(标红)
25%17=8(标红)
72%17=4(标红)
38%17=4
8%17=8
18%17=1(标红)
59%17=8
?
HT
,散列函数H(k)=k%7,用线性探测再散列法解决冲突。将关键字 22, 43, 15 依次插入到HT
后,查找成功的平均查找长度是:(C)A.1.5
B.1.6
C.2
D.3
22%7=1(1次)
43%7=1(2次)
15%7=1(3次)
所以平均查找长度=总次数/关键字的所有个数
即:(1+2+3)/3=2
A.4
B.5
C.6
D.7
14%11=3
38%11=5
61%11=6
86%11=9
49%11=5
??
A.散列存储
B.顺序存储或链式存储(定义)
C.压缩存储
D.索引存储
A.只能等于表长
B.只能小于表长
C.小于等于表长的最大素数
D.任意值
A.存取元素时发生冲突的可能性就越大
B.存取元素时发生冲突的可能性就越小
C.存取元素时不可能发生冲突
D.毫无影响
装填因子α可描述哈希表的装满长度,α=哈希表中元素个数/哈希表的长度
显然,α越小,发生冲突的可能性越小,α越大,发生冲突的可能性越大