二叉排序树的不成功的平均查找长度怎么求?

比如 62
30 74
15 56
48

查找不成功就是从查找位置开始直到一个位置为空需要比较的次数。

比如:

62

/   \

30  74

/    \

15    56

/

48

找到所有的外结点,也就是查找失败的点,然后计算ASL

就你的BST,结果如下:

15的左右子树都为空,也就是左右子树都是外结点,失败时需要比较62、30、15一共3次

48的左右子树都为空,也就是左右子树都是外结点,失败时需要比较62、30、15、48一共4次

56的右子树为空,也就是右子树是外结点,失败时需要比较62、30、56一共3次

74的左右子树都为空,也就是左右子树都是外结点,失败时需要比较62、74一共2次

因此外结点总数为2 *3 + 1 = 7 (其实这个数量一定是关键字个数加1)

所以ASL = (2 * 3 + 2 * 4 + 1 * 3 + 2 * 2) / 7 = 21 / 7 = 3。

扩展资料:

查找步骤:

二叉树

若根结点的关键字值等于查找的关键字,成功。否则,若小于根结点的关键字值,递归查左子树。若大于根结点的关键字值,递归查右子树。若子树为空,查找不成功。

平均情况分析(在成功查找两种的情况下):

在一般情况下,设 P(n,i)为它的左子树的结点个数为 i 时的平均查找长度。如图的结点个数为 n = 6 且 i = 3; 则 P(n,i)= P(6, 3) = [ 1+ ( P(3) + 1) * 3 + ( P(2) + 1) * 2 ] / 6= [ 1+ ( 5/3 + 1) * 3 + ( 3/2 + 1) * 2 ] / 6

注意:这里 P(3)、P(2) 是具有 3 个结点、2 个结点的二叉分类树的平均查找长度。 在一般情况,P(i)为具有 i 个结点二叉分类树的平均查找长度。平均查找长度= 每个结点的深度的总和 / 总结点数

参考资料来源:百度百科-二叉排序树

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-11-25
找到所有的外结点,也就是查找失败的点,然后计算ASL
就你的BST,结果如下:
15的左右子树都为空,也就是左右子树都是外结点,失败时需要比较62、30、15一共3次
48的左右子树都为空,也就是左右子树都是外结点,失败时需要比较62、30、15、48一共4次
56的右子树为空,也就是右子树是外结点,失败时需要比较62、30、56一共3次
74的左右子树都为空,也就是左右子树都是外结点,失败时需要比较62、74一共2次
因此外结点总数为2 *3 + 1 = 7 (其实这个数量一定是关键字个数加1)
所以ASL = (2 * 3 + 2 * 4 + 1 * 3 + 2 * 2) / 7 = 21 / 7 = 3本回答被网友采纳
第2个回答  2019-12-21
需要有一定的公司才能够求出来的,不过这个公司相对来说比较简单的。
相似回答