3、n+1)=(3*3+4*10)/13=49/13参考答案56391711812a6a9a11a12a3a1a4a7a5a82410a2a108-9假设按下述递归方法进行顺序表的查找:若表长n≤10,则进行顺序查找,否则进行折半查找。试画出对表长n=50的顺序表进行上述查找时,描述该查找的判定树,并求出在等概率情况下查找成功的平均查找长度。ASL=(1+2*2+3*4+(4+5+6+7+8)*8+9*3)/50=284/50参考答案26-3013-171-519-2432-3725123863144a25a38a44a12a6a18a31187-1145-5039-43
4、a28-10已知下列关键词和它们对应的散列函数值:由此构造哈希表,用线性探测法冲突,计算平均查找长度ASL。若用拉链法解决冲突情况又如何?keyZhaoSunLiWangChenLiuZhangH(key)6574164参考答案线性探测法(假设散列表的长度是8,下标从0开始)查找成功ASL=(1*5+3*1+7*1)/7=15/7下标元素7Li6Zhao5Sun4Wang32Zhang1Chen0Liu拉链法(假设散列表长度是8,下标从0开始)查找成功ASL=(1*5+2*1+2*1)/7=9/7下标指针76543Λ2Λ10ΛLiΛZhaoLiuΛSunΛWangZh
5、angΛChenΛ合并拉链法(算法C)拉链法(假设散列表的长度是8,下标从0开始)查找成功ASL=(1*5+2*1+2*1)/7=9/7下标元素Link7Li-16Zhao35Sun-14Wang23Liu-12Zhang-11Chen-108-13已知序列(17,31,13,11,20,35,25,8,4,11,24,40,27),请画出该序列的二叉查找树,并分别给出下列操作后的二叉查找树。(1)插入数据9(2)删除节点17(3)再删除节点13参考答案动态插入创建二叉查找树:(17,31,13,11,20,35,25,8,4,11,24,40,27)17173117
6、3113173113111731131120173113112035(17,31,13,11,20,35,25,8,4,11,24,40,27)1731131120352517311311203584244027插入数据9251731131120358424402792517311311203584244027删除17251731131120358424402724203113112535844027再删除节点13242031131125358440272420311182535440278-22编写判定给定的二叉树是否是二叉查找树的算法。[提示]判定二叉树是否为二叉
7、查找树是建立在中根遍历的框架基础下,在遍历中附设一指针pre指向当前访问节点的中根直接前驱,每访问一个节点便比较前驱节点pre和此节点是否有序,若遍历结束后各节点和其中根直接前驱均满足有序,则此二叉树为二叉查找树;否则,只要有一个节点不满足,那么此二叉树就不是二叉查找树。算法BST(t.pre,flag)/*使用中根遍历和pre指针判断t是否是二叉查找树*/B1[特判]flagTRUE.IFt=NULLTHENRETURN.B2[中根遍历]BST(left(t),pre,flag).IF(!flag)THENRETURN.IF(pre!=NULLA