BST(二叉搜索树)的Unsuccessful search

原文地址:https://book.huihoo.com/data-structures-and-algorithms-with-object-oriented-design-patterns-in-c++/html/page309.html#SECTION001133000

不成功的搜索

当找到搜索对象时,所有成功的搜索都会终止。因此,所有成功的搜索都在内部节点处终止。相反,所有不成功的搜索都在外部节点处终止。就图中所示的二叉树而言  ,成功的搜索终止于一个节点,这些节点被绘制为圆圈,而不成功的搜索终止于其中一个框中。

前面的分析表明,成功搜索期间访问的平均节点数取决于 内部路径长度,它只是所有内部节点深度的总和。类似地,在不成功搜索期间访问的平均节点数取决于外部路径长度外部路径长度是所有外部节点的深度之和。幸运的是,内部路径长度和二叉树的外部路径长度之间存在简单的关系。     

 

定理   假设二叉树T有n个内部节点,内部路径长度为i,外部路径长度为T

displaymath64688

 

换句话说,定理说内部路径长度和具有n个内部节点的二叉树的外部路径长度之间的 差异E - I = 2 n

extbfProof(通过归纳法)。

基本情况 考虑一个二进制树,其中一个内部节点和内部路径长度为零。这样的树在根下面恰好有两个空子树,其外部路径长度为2。因此,该定理适用于n = 1。

归纳假设 假设该定理适用tex2html_wrap_inline64704于某些 定理 tex2html_wrap_inline59577。考虑一个tex2html_wrap_inline64708具有k个内部节点的任意树 。根据定理  GIF, tex2html_wrap_inline64708k + 1个外部节点。让 tex2html_wrap_inline64716和 tex2html_wrap_inline64718是的内部和外部的路径长度 tex2html_wrap_inline64708分别,根据归纳假设, tex2html_wrap_inline64722

考虑当我们tex2html_wrap_inline64724 通过从tex2html_wrap_inline64708 具有两个空子树的内部节点移除外部节点 并用其替换它来创建新树时会发生什么 。显然,生成的树具有k + 1个内部节点。此外,假设我们移除的外部节点位于深度d。然后的内部路径长度 tex2html_wrap_inline64724IS tex2html_wrap_inline64734 和的外部路径长度 tex2html_wrap_inline64724是 tex2html_wrap_inline64738

内部路径长度和外部路径长度之间的差异 tex2html_wrap_inline64724

eqnarray19256

因此,通过k上的感应,具有n个内部节点的二叉树的内部路径长度和外部路径长度之间的差异 对于所有都是 2ntex2html_wrap_inline59533

由于任何具有n个内部节点的树的内部和外部路径长度之间的差异是2 n,因此我们可以对所有搜索树上平均的平均内部和外部路径长度说同样的事情。因此,En),二叉搜索树的平均外部路径长度由下式给出

eqnarray19261

 

具有内部n个节点的二叉搜索树具有n + 1个外部节点。因此,具有n个内部节点 的二叉搜索树的外部节点的平均深度tex2html_wrap_inline64762由下式给出

eqnarray19264

 

这些非常好的结果是二元搜索树的存在理由。他们所说的是在具有n个节点的平均二叉搜索树中成功或不成功搜索期间访问的平均 节点数是 tex2html_wrap_inline59891。但是,我们必须记住,这些结果的前提是假设所有可能的n个节点的搜索树都是等概率的。重要的是要意识到在实践中并非总是如此。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值