2010-10-22 121 views
1

我已經有一個可用的二叉樹數據庫。不幸的是,它需要有能力自我平衡。我不想重寫整個事情,我只想包含一個可以平衡樹的函數。任何算法或想法?如何平衡我的二叉樹

+2

[谷歌搜索「如何平衡二叉樹」](http://www.google.com.au/search?q=how+to+balance+a+binary+tree)帶來了大量的結果。選一個。 – doppelgreener 2010-10-22 02:32:29

+1

它不僅僅是「二叉樹」,它是「二叉搜索樹」。 – Arun 2010-10-22 02:50:34

+0

@ArunSaha:你爲什麼這麼說? OP沒有說這些元素是經過排序的。 – 2010-10-22 02:56:48

回答

2

AVL和RedBlack樹平衡樹是自平衡樹。 您可以遍歷原始樹並在這些樹中插入節點。 之後,您可以保留新的樹並丟棄原來的樹。

+2

我認爲OP的想法是保留所有的代碼,並添加一個平衡他的普通二叉樹的函數。 – JoelFan 2010-10-22 02:49:05

1

AVL和Re d-Black樹是平衡的二叉樹。我有一個AVL樹的實現。看看here。它支持插入和搜索。刪除尚未實施。