二进制搜索树中的重复条目

时间:2012-01-02 18:15:46

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

关于BST,我有一个非常简单的问题。我已经看到有关重复条目的BST的多个定义。有些人将BST定义为不允许重复输入,其他人将节点的左子节点定义为< =节点值,右子节点大于节点的值,并且一些定义与此相反(左子节点<比节点,右孩子是> =)。

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

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

2 个答案:

答案 0 :(得分:6)

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

enter image description here

根据本书的定义,重复条目放在包含相同密钥的节点的右侧树中。举个例子,看一下本书采用的BST插入算法:

enter image description here

答案 1 :(得分:3)

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

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