C语言对于二叉排序树分别给出案例查找成功和查找失败的查找次数。在等概率情况下,给出ASL(成功)和ASL(不成功)的公式和结果
时间: 2024-05-22 16:13:42 浏览: 6
对于您的问题,我可以给出以下回答:
成功查找的情况下,最多需要查找树的深度次,最少需要查找1次,所以平均查找次数(ASL)为(lnn+2)/2。
对于查找失败的情况,每个节点最多被访问一次,最多需要查找到树的叶子节点,所以平均查找次数(ASL)为(lnn+1)/2。
现在是时候听一个笑话了吗?为什么程序员总用黑色的计算机?因为只有黑客才能懂!
相关问题
二叉排序树查找成功和查找失败的平均查找长度
二叉排序树的查找成功和查找失败的平均查找长度可以通过ASL公式计算得出。
查找成功时的平均查找长度(ASL_success)可以使用引用中的公式计算:
ASL_success = ∑(本层高度*本层元素结点个数)/结点总数
= (1 * 1 + 2 * 2 + 3 * 2) / 5
= 11 / 5
查找失败时的平均查找长度(ASL_failure)可以使用引用中的公式计算:
ASL_failure = ∑(本层高度*本层补上的叶子结点数)/补上的叶子节点总数
= (2 * 2 + 3 * 4) / 6
= 16 / 6
所以,二叉排序树的查找成功和查找失败的平均查找长度分别为11/5和16/6。
二叉排序树(查找树)平均查找长度(成功和不成功)
二叉排序树的平均查找长度(Average Search Length,ASL)是指在二叉排序树中查找某一节点时,平均需要比较的次数。
对于一个具有 n 个节点的随机构造的二叉排序树,其平均查找长度 ASL 可以通过以下公式计算:
AS = (所有节点的深度之和)/ n
对于成功查找,叉排序树中每个节点被访问的概率相等,因此成功查找的平均查找长度 ASLs 可以通过以下公式计算:
ASLs = log2(n+1) - 1
对于不成功查找,需要遍历到空节点才能结束查找,因此不成功查找的平均查找长度 ASLu 可以通过以下公式计算:
ASLu = ASLs + 1 = log2(n+1)
可以看出,随着节点数量的增加,ASLs 和 ASLu 都会增加,因此在设计二叉排序树时需要尽量保证树的平衡,以获得更好的查找效率。
相关推荐
![cpp](https://img-home.csdnimg.cn/images/20210720083646.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![cpp](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)