【笔记】数据结构、算法4
1、设循环队列的容量为50(序号从0到49),现经过一系列的入队和出队运算后,有 front=16,rear=5(rear指向队尾元素的后一位置),当前循环队列中元素个数为( ) 39
(rear-front+size)%size=(5-16+50)%50=39
2、在一棵二叉排序树上查找值为35的数据,以下比较的数据序列正确的为
A.【28,?】→【28,36】→18不在这个区间,错误
B.【18,?】→【18,36】→【28,36】→46不在这个区间,错误
C.【?,46】→【28,46】→18不在这个区间,错误
D.【?,46】→【?,36】→【18,36】→【28,36】→找到35
3、设哈希表长为11,哈希函数为Hash (key)=key%11。存在关键码{43,7,29,22,16,92,44,8,19},采用二次探测法处理冲突,建立的hash表为( )
则哈希函数变为Hash(key) = (Hash(key) + d) % 11,其中d = 1^2, -1^2, 2^2, -2^2, 3^2,……,则开始计算。
Hash (key)=key%11,
43%11=10,因此10号位填入43
7%11=7,7位置为空,因此可填入7
29%11=7,7位置不为空,因此将(29+1)%11,29填入8号位
22%11=0,22填入0号位
16%11=5,16填入5号位
92%11=4.92填入4号位
44%11=0,0号位不为空,因此44填入1号位
8%11=8,8号位不为空,因此8填入9号位
对于19,代入公式Hash(19) = 19 % 11 = 8. 与 29有冲突,则继续(8 + 1) * 11 = 9, 与8有冲突,继续(8 - 1) % 11 = 7, 与7有冲突,则继续(8 + 4) % 11 = 1, 与44有冲突,则继续(8 - 4) % 11 = 4, 与92有冲突,则继续(8 + 9) % 11 = 6, 没有冲突,则地址为6.
hash表如下图。