1.对于二叉排序树,下面的说法()是正确的。
A.二叉排序树是动态树表,查找不成功时插入新结点时,会引起树的重新分裂和组合B.对二叉排序树进行层序遍历可得到有序序列C.用逐点插入法构造二叉排序树时,若先后插入的关键字有序,二叉排序树的深度最大D.在二叉排序树中进行查找,关键字的比较次数不超过结点数的1/22.在有n个结点且为完全二叉树的二叉排序树中查找一个键值,其平均比较次数的数量级为()。
A.O(n)B.O(log2n)C.O(n*log2n)D.O(n2)3.静态查找与动态查找的根本区别在于()。
A.它们的逻辑结构不一样B.施加在其上的操作不同C.所包含的数据元素类型不一样D.存储实现不一样4.已知一个有序表为{12,18,24,35,47,50,62,83,90,115,134},当折半查找值为90的元素时,经过()次比较后查找成功。
A.2B.3C.4D.55.已知数据序列为(34,76,45,18,26,54,92,65),按照依次插入结点的方法生成一棵二叉排序树,则该树的深度为()。
A.4B.5C.6D.76.设散列表表长m=14,散列函数H(k)=kmod11。
表中已有15,38,61,84四个元素,如果用线性探测法处理冲突,则元素49的存储地址是()。
A.8B.3C.5D.97.平衡二叉树的查找效率呈()数量级。
A.常数阶B.线性阶C.对数阶D.平方阶8.设输入序列为{20,11,12,…},构造一棵平衡二叉树,当插入值为12的结点时发生了不平衡,则应该进行的平衡旋转是()。
A.LLB.LRC.RLD.RR二、填空题(每空3分,共24分)。
1.在有序表A[1..18]中,采用二分查找算法查找元素值等于A[7]的元素,所比较过的元素的下标依次为。
2.利用逐点插入法建立序列(61,75,44,99,77,30,36,45)对应的二叉排序树以后,查找元素36要进行次元素间的比较,查找序列为。
3.用顺序查找法在长度为n的线性表中进行查找,在等概率情况下,查找成功的平均比较次数是。
4.二分查找算法描述如下:intSearch_Bin(SSTST,KTkey){low=1;high=ST.length;while(low<=high){mid=(low+high)/2;if(key==ST.elem[mid].key)returnmid;elseif(key<ST.elem[mid].key);else;}return0;}5.链式二叉树的定义如下:typedefstructBtn{TElemTypedata;;}BTN,*BT;6.在有n个叶子结点的哈夫曼树中,总结点数是。
三、综合题(共52分)。
1.(共12分)假定关键字输入序列为19,21,47,32,8,23,41,45,40,画出建立二叉平衡树的过程。
2.(共15分)有关键字{13,28,31,15,49,36,22,50,35,18,48,20},Hash函数为H=keymod13,冲突解决策略为链地址法,请构造Hash表(12分),并计算平均查找长度(3分)。
ASL=3.(共10分)设关键字码序列{20,35,40,15,30,25},给出平衡二叉树的构造过程。
4.(共15分)设哈希表长为m=13,散列函数为H(k)=kmod11,关键字序列为5,7,16,12,11,21,31,51,17
1