【问题标题】:Duplicate Entries in Binary Search Tree二叉搜索树中的重复条目
【发布时间】:2012-01-02 18:15:46
【问题描述】:

我有一个关于 BST 的非常简单的问题。我已经看到关于重复条目的 BST 的多个定义。一些将 BST 定义为不允许重复条目,另一些将节点的左子节点 =)。

所以我的问题是关于重复条目的 BST 的官方定义(如果存在的话)是什么?例如,插入值 3、5、10、8、5、10 后 BST 会是什么样子?

提前感谢您澄清定义并回答我的问题!

【问题讨论】:

  • “官方定义”?你认为“官方”是什么?这里需要什么级别的权限?
  • 我猜这与其说是权限级别,不如说是关于重复条目的 BST 最普遍接受的定义。

标签: c# java python binary-search-tree


【解决方案1】:

算法和数据结构领域的著名书籍之一是CLRS book,也被称为数据结构和算法的圣经:

根据本书的定义,重复的条目被放置在包含相同键的节点的右树中。例如,看一下本书采用的 BST 的插入算法:

【讨论】:

  • 哇非常有趣和温顺的答案。
【解决方案2】:

重要的一点是,在树中有重复项可确保快速查找时间。 如果您在节点的一侧有重复项,您的搜索时间将会受到影响,因为您必须先检查所有重复项才能继续。

http://en.wikipedia.org/wiki/Binary_search_tree

【讨论】:

  • 外部链接在这种情况下不是很有帮助。
  • 在左子节点 = 比节点的树中,这没什么大不了的。当找到第一个节点时,只需检查右子节点以获取所有重复项。
  • 当然每个节点可以只包含元素出现次数的计数
猜你喜欢
  • 2011-12-04
  • 1970-01-01
  • 1970-01-01
  • 2023-03-08
  • 2012-06-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多