轻松解决不同关键字序列构成的二叉排序树ASL(平均查找长度)(成功)不同问题

打算就说说标题的方法,和介绍一下查找成功和非成功二叉树中结点的方法

关键字序列1,2,3,4,5构造而得的二叉排序树

《轻松解决不同关键字序列构成的二叉排序树ASL(平均查找长度)(成功)不同问题》

ASL=(1,2,3,4,5)/5=3

按关键字3,1,2,5,4构造而得的二叉排序树

《轻松解决不同关键字序列构成的二叉排序树ASL(平均查找长度)(成功)不同问题》

ASL=(1+2+2+3+3)/5=2.2

很明显第二种序列的ASL要快。至于二叉排序树怎么构成的其实就是根据它的性质(若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值,若它的右子树不空,则右子树上的所有结点的值均大于它的根结点的值)

ASL怎么求

分别分为成功和非成功的情况

成功

每个结点的深度相加除以结点个数

非成功

我拿个书上的例子把
《轻松解决不同关键字序列构成的二叉排序树ASL(平均查找长度)(成功)不同问题》

首先,先补全二叉树,可以看到有12个非成功的结点,这里我假设每个非成功查找结点概率相同,然后深度为3的非成功结点有4个,深度为4的非成功结点有8个。所以是3*4+4*8

所以该图非成功的ASL=(3*4+4*8)/12

    原文作者:二叉查找树
    原文地址: https://blog.csdn.net/w_linux/article/details/78659061
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞