填空题(1998年中国科学技术大学)

在n个记录的有序顺序表中进行折半查找,最大的比较次数是__________。

答案解析

[log2n]+1

讨论

下列关于非空 B 树的叙述中,正确的是【 】Ⅰ. 插入操作可能增加树的高度Ⅱ. 删除操作一定会导致叶结点的变化Ⅲ. 查找某关键字一定是要查找到叶结点Ⅳ. 插入的新关键字最终位于叶结点中

下列哪两个数据结构,同时具有较高的查找和删除性能【 】

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

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

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

折半(二分)查找法适用的线性表应该满足【 】的要求。

对含有 600 个元素的有序顺序表进行折半查找,关键字之间的比较次数最多是【 】

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

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

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

对关键码序列(9,12,15,20,24,29,56,69,87)进行二分查找(折半查找),若要查找关键码15,则需依次与【 】进行比较。

最优二叉树(哈夫曼树)、最优查找树均为平均查找路径长度wihi最小的树,其中对最优二叉树,n表示__________,对最优查找树,n表示__________,构造这两种树均__________。(1)结点数(2)叶结点数(3)非叶结点数(4)度为2的结点数(5)需要一张n个关键字的有序表(6)需要对n个关键字进行动态插入(7)需要n个关键字的查找概率表(8)不需要任何前提

在一个线性表上可以进行二分查找(折半查找)的充分必要条件是【 】。

用二分法查找一个线性表时,该线性表必须具有的特点是____________。

在分块检索中,若索引表和各块内均用顺序查找,则有900个元素的线性表分成__________块最好;若分成25块,其平均查找长度为__________。

用向量和单链表表示的有序表均可使用折半查找方法来提高查找速度。

若在线性表中采用折半查找元素,该线性表应该【 】。

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

有n个数存放在一维数组A[1..n]中,在进行顺序查找时,这n个数的排列有序或无序其平均查找长度不同。

分块查找要求将待查找的表均匀地分成若干块,块中诸记录的顺序可以是任意的,但块与块之间____________。

在有13个元素构成的有序表data[1..13]中,用折半查找(即二分查找,计算时向下取整)方式查找值等于data[8]的元素时,先后与【 】等元素进行了比较。

对于正整数n ,输出其和等于n且满足以下限制条件的所有正整数的和式,组成和式的数字自左至右构成一个非递增的序列。如 n = 4 ,程序输出为:4 = 44 = 3 + 14 = 2 + 24 = 2 + 1 + 1 4 = 1 + 1 + 1 + 1test 是实现该功能的 C 程序段,请将未完成的部分补足,使之完整。test 函数为一递归函数,参数 n 为被分解和式的数, k 为当前的分解深度。算法思想是对 n 的所有合理的和式分解,将分解出的数(称为和数)存于二数组 a[]中。当其中一个分解己不再需要进一步进行时,即找到一个解,将存于 a[] 中的一个完整和式的和数输出。当还需要进一部分解时,以要进一部分解的数及分解深度为参数,递归调用 test 函数。#define MAXN 100 int a[MAXN]; test(int n,int k){     int i,j;     for (j=__________;j>=1;j--){         a[k]=j;          if (__________){             printf ( "%d = %d" , a[0],a[l]);             for (i = 2 ; i < = k ; i + + )                 printf ( " + % d " , a[i]);             printf ( "  n " );         }else test(__________,k + l );     } }

在一个有n个顶点的无向网中,有O(n1.5*log2n)条边,则应该选用【 】算法来求这个网的最小生成树,从而使计算时间较少。

G是一个非连通无向图,共有28条边,则该图至少有【 】个顶点。

如果只考虑有序树的情形,那么具有7个结点的不同形态的树共有【】

在叶子数目和权值相同的所有二叉树中,最优二叉树一定是完全二叉树,该说法【 】。

对于前序遍历和中序遍历结果相同的二叉树为__________;对于前序遍历和后序遍历结果相同的二叉树是为__________。一般二叉树只有根结点的二叉树要结点无左孩子的二叉树根结点无右孩子的二叉树所有结点只有左子树的二叉树所有结点只有右子树的二叉树

由二叉树的前序和后序遍历序列【 】唯一地确定这棵二叉树。

n个顶点的连通图用邻接矩阵表示时,该矩阵至少有__________个非零元素。

栈的输入序列为1,2,3,...,n,输出序列为a1,a2,a3,...,an,若ai=n(1≤i≤n),则有 ak>ak+1>an。