2010-10-22 123 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。它支持插入和搜索。删除尚未实施。