判断题(1994年北京大学)

若散列表的负载因子α<1,则可避免碰撞的产生。

答案解析

【解析】

α越小,只能说明发生冲突的可能性越小,但依然有可能发生冲突。

讨论

设a、b、c、d和e这5个字符的编码分别为1、2、3、4和5,并设标识符依以下次序出现ac、bd、aa、be、ab、ad、cd、bc、ae和cd。要求用哈希(Hash)方式将它们存放在具有10个位置的表中。① 对上述关键字(标识符)构造一个哈希函数,使得发生冲突尽可能地少。② 用线性探测再散列法解决冲突。写出上述各关键字在表中的位置。

设有12个数据{25,40,33,47,12,66,72,87,94,22,5,58},它们存储在散列表中,利用双散列解决冲突,要求插入新数据的平均查找次数不超过3次。① 该散列表的大小m应该设计多大?② 试为该散列表设计相应的散列函数(用除留余数法)并计算寻找下一个“空位”时向前跨步步长的再散列函数。③ 顺次将各个数据散列到表中。④ 计算查找成功的平均查找次数。

若杂凑表(Hash)的地址范围为[0,9],杂凑函数为H(key)=(key2+2) MOD 9,并采用链地址法处理冲突,请画出元素7、4、5、3、6、2、8、9依次插入杂凑表的状态。

假定有K个关键字互为同义词,若用线性探测法把这K个关键字存入散列表中,至少要进行【 】次探测。

负载因子(装填因子)是散列表的一个重要参数,它反映散列表的装满程度。

一棵满二叉排序树深度为k,节点数为2k-1;节点值为1至(2k - 1),给出k和任意三个节点的值,输出包含该三个节点的最小子树的根节点。样例输入:4 10 15 13样例输出:12

已知序列17,31,13,11,20,35,25,8,4,11,24,40,27,请画出该序列的二叉排序树,并分别给出下列操作后的二叉排序树:① 插入数据9;② 删除结点17;③ 再删除结点13。

在任意一棵非空二叉排序树中,删除某结点后又将其插入,则所得二叉排序树与删除前原二叉排序树相同。

在关键字随机分布的情况下,用二叉排序树的方法进行查找,其查找长度与【 】量级相当。

递归函数最终会结束,那么这个函数一定【 】

现有长度为 5,初始为空的散列表HT,散列函数H(k)=(k+4) mod 5, 用线性探查再散列法解决冲突。若将关键字序列 2022, 12, 25 依次插入HT中,然后删除关键字 25 ,则HT中查找失败的平均查找长度为【 】。

对关键码序列(12,24,15,56,20,87,69,9)采用散列法进行存储和查找,并设散列函数为H(Key)=Key%11(%表示整除取余运算)。采用线性控查法(顺地探查可用存储单元)解决冲突所构造的散列表为【 】。

对于关键码序列(54,34,5,14,50,36,47,83),用链地址法(或拉链法)解决冲突构造散列表(即将冲突的元素存储在同一个单链表中,单链表的头指针存入散列地址对应的单元),设散列函数为H(Key)= Key MOD7(MOD表示整除取余运算),则构造散列冲突次数最多的哈希单元的地址是【 】。

顺序队列一般应该组织成为环状队列的形式,而且一般队列头或尾其中之一应该特殊处理。例如,队列为 listarray [ 0 ... n-1] ,队列头指针为front ,队列尾指针为 rear ,则 listarray[rear]表示下一个可以插入队列的位置。请解释其原因。

试列中下列图中全部可能的拓扑排序序列。

已知结点指针p、q分别表示双向链表中任意两个相邻结点(即p->rlink=q且q->llink=p),请写出删除q所指结点的程序段。

求具有最小带权路径长度的二叉树的算法称为__________算法。对于给出的一组权W={10,12,16,21,30},通过该算法示出的二叉树的带权路径长度为__________。

在分块检索中,对256个元素的线性表分成__________块最好,每块的最佳长度是__________;若每块的长度为8,其平均检索长度为__________。

二叉树中,具有两个子女的结点的中序后继结点最多只能有一个子女。

最佳二叉树是AVL树(平衡二叉树)。