2014-01-22 52 views
1

我對我的二叉搜索算法感到困惑。我必須使用put():4,1,3,5,2將下列整數插入給定順序的空二叉樹中。如果我在這樣做的時候採取了正確的方式,我並不是百分之百肯定的。這就是我做的事情。當我不得不插入2時,我的主要部分出現了混亂。我只是想確保我正確地做到了這一點。謝謝大家。在二叉搜索樹中插入問題

 4 
    /\ 
    1 5 
    /\ 
     3 
    /
    2 
+1

它看起來不錯.... 2 <4 ....然後2> 1 ....然後2 <3 ....所以就變成3的左子 – gtgaxiola

+3

除吊斜線'/'留給'1',一切似乎對我來說都是正確的:) –

回答

2

您是點上,和2> 1和最後

二進制搜索樹插入規則如下:

如果要插入的鍵小於當前值,將密鑰插入當前值左子樹。

如果要插入的鍵大於當前值,則將該鍵插入當前值右子樹。

如果密鑰是重複值您不會插入。

在你看來,你的回答是錯誤的,因爲你可能認爲它看起來很奇怪,作爲一個人有2作爲3的孩子。不要擔心這種怪異。只要相信算法,隨時遵守規則,並且您的插入將起作用。

我發佈了一個鏈接,你應該看看。它提供了很多數據結構的良好可視化,並且如果再次遇到類似的問題,將會對您有所幫助。該網站允許您以您想插入的任何順序構建自己的二叉搜索樹。

作爲一個方面說明:該網站還提供了許多其他數據結構可視化,如果你在將來對不同的數據結構有類似的問題。

Binary Search Tree Visualization