不成功的搜索
当找到搜索对象时,所有成功的搜索都会终止。因此,所有成功的搜索都在内部节点处终止。相反,所有不成功的搜索都在外部节点处终止。就图中所示的二叉树而言 ,成功的搜索终止于一个节点,这些节点被绘制为圆圈,而不成功的搜索终止于其中一个框中。
前面的分析表明,成功搜索期间访问的平均节点数取决于 内部路径长度,它只是所有内部节点深度的总和。类似地,在不成功搜索期间访问的平均节点数取决于外部路径长度,外部路径长度是所有外部节点的深度之和。幸运的是,内部路径长度和二叉树的外部路径长度之间存在简单的关系。
定理 假设二叉树T有n个内部节点,内部路径长度为i,外部路径长度为T
换句话说,定理说内部路径长度和具有n个内部节点的二叉树的外部路径长度之间的 差异是E - I = 2 n。
extbfProof(通过归纳法)。
基本情况 考虑一个二进制树,其中一个内部节点和内部路径长度为零。这样的树在根下面恰好有两个空子树,其外部路径长度为2。因此,该定理适用于n = 1。
归纳假设 假设该定理适用于某些 定理
。考虑一个
具有k个内部节点的任意树 。根据定理
,
有k + 1个外部节点。让
和
是的内部和外部的路径长度
分别,根据归纳假设,
。
考虑当我们 通过从
具有两个空子树的内部节点移除外部节点 并用其替换它来创建新树时会发生什么 。显然,生成的树具有k + 1个内部节点。此外,假设我们移除的外部节点位于深度d。然后的内部路径长度
IS
和的外部路径长度
是
。
内部路径长度和外部路径长度之间的差异 是
因此,通过k上的感应,具有n个内部节点的二叉树的内部路径长度和外部路径长度之间的差异 对于所有都是 2n。
由于任何具有n个内部节点的树的内部和外部路径长度之间的差异是2 n,因此我们可以对所有搜索树上平均的平均内部和外部路径长度说同样的事情。因此,E(n),二叉搜索树的平均外部路径长度由下式给出
具有内部n个节点的二叉搜索树具有n + 1个外部节点。因此,具有n个内部节点 的二叉搜索树的外部节点的平均深度由下式给出
这些非常好的结果是二元搜索树的存在理由。他们所说的是在具有n个节点的平均二叉搜索树中成功或不成功搜索期间访问的平均 节点数是 。但是,我们必须记住,这些结果的前提是假设所有可能的n个节点的搜索树都是等概率的。重要的是要意识到在实践中并非总是如此。