现有长度为 5,初始为空的散列表HT,散列函数H(k)=(k+4) mod 5, 用线性探查再散列法解决冲突。若将关键字序列 2022, 12, 25 依次插入HT中,然后删除关键字 25 ,则HT中查找失败的平均查找长度为【 】。
A、1
B、1.6
C、1.8
D、2.2
现有长度为 5,初始为空的散列表HT,散列函数H(k)=(k+4) mod 5, 用线性探查再散列法解决冲突。若将关键字序列 2022, 12, 25 依次插入HT中,然后删除关键字 25 ,则HT中查找失败的平均查找长度为【 】。
A、1
B、1.6
C、1.8
D、2.2
C
【解析】
1)插入2022,H(2022)=(2022+4) mod 5 =1;1位为空,可插入;
2)插入12,H(12)=(12+4) mod 5 =1,冲突,采用线性探测法,每次向右探索一位,当前为空,可插入;
3)插入25,H(25)=(25+4) mod 5 =4,4位为空,可插入。
4)删除25,该散列表采用线性探测再散列法,属于开放寻址法,从中删除关键字时,不能简单地置NIL,而是作一个标记,如DELETED,简记为D。
5)计算查找失败时的平均查找长度:
查找元素失败统计项数目与散列表空间大小和散列函数均有关,这里取5。
按照冲突处理方法,计算出每种情况查找失败需要的次数,即失败查找长度:
散列到0:
查找次数为1;
散列到1:
查找次数为3;
散列到2:
查找次数为2;
散列到3:
查找次数为1;
散列到4:
查找次数为2。
查找失败时的平均查找长度为:(1+3+2+1+2)/5=1.8
对含有 600 个元素的有序顺序表进行折半查找,关键字之间的比较次数最多是【 】
下列关于非空 B 树的叙述中,正确的是【 】Ⅰ. 插入操作可能增加树的高度Ⅱ. 删除操作一定会导致叶结点的变化Ⅲ. 查找某关键字一定是要查找到叶结点Ⅳ. 插入的新关键字最终位于叶结点中
已知无向连通图 G 中各边的权值均为 1,下列算法中一定能够求出图 G 中从某顶点到其余各个顶点最短路径的是【 】Ⅰ.普利姆算法;Ⅱ.克鲁斯卡尔算法;Ⅲ.图的广度优先搜索
已知一棵二叉树的树形如图,若其后序遍历为 f、d、b、e、c、a,则其先序列为【 】
在有 6 个字符组成的字符集 S 中,各个字符出现的频次分别为 3、4、5、6、8、10,为 S 构造的哈夫曼树的加权平均长度为【 】
若采用三元组表存储结构存储系数矩阵 M.则除三元组外,下列数据中还需要保存的是【 】Ⅰ. M 的行数;Ⅱ. M 中包含非零元素的行数;Ⅲ. M 的列数;Ⅳ. M 中包含非零元素的列数.
用向量和单链表表示的有序表均可使用折半查找方法来提高查找速度。
在分块检索中,对256个元素的线性表分成__________块最好,每块的最佳长度是__________;若每块的长度为8,其平均检索长度为__________。
有n个数存放在一维数组A[1..n]中,在进行顺序查找时,这n个数的排列有序或无序其平均查找长度不同。
在n个记录的有序顺序表中进行折半查找,最大的比较次数是__________。
用二分法查找一个线性表时,该线性表必须具有的特点是____________。
分块查找要求将待查找的表均匀地分成若干块,块中诸记录的顺序可以是任意的,但块与块之间____________。
在分块检索中,若索引表和各块内均用顺序查找,则有900个元素的线性表分成__________块最好;若分成25块,其平均查找长度为__________。