2012-02-21 50 views
22

我目前正在學習二叉搜索樹,而且我想知道如果您嘗試插入與根相同值的元素,您會做什麼?它在哪裏?插入一個等值元素

+2

這取決於樹的設計者。你可以返回一個錯誤。您可以添加它,就好像它是比現有值更大的最微小的位。您可以有一個特殊的「多個條目」對象來代替現有的對象。這取決於樹的用途。 – 2012-02-21 20:37:05

+0

相關[問題](http://stackoverflow.com/q/300935/503900)與很好的答案。 – bigstones 2013-09-09 12:12:18

回答

27

BST的定義是它是一個有序集合,因此不允許重複插入。這通常是由於在BST上建造了更復雜的結構。根據所需的行爲,當插入重複項時,您可能想要拋出異常,錯誤或默默忽略。

但是,根據您的比較函數,您可以在左側或右側子樹中存儲重複項,但請記住保持遍歷和插入面的一致性。

+0

非常感謝。 – Programatt 2012-02-21 20:49:54