二叉树 - 删除

时间:2012-06-27 05:46:10

标签: algorithm binary-tree

我基本上需要一种保证O(log n)删除的方法。这可以用二叉树来完成,还是最坏的情况是O(n)?

如果我每次平衡树怎么办?

请帮助

3 个答案:

答案 0 :(得分:3)

您需要一个平衡的二叉树才能使保证工作。 红黑树是平衡树结构的一个例子,实施起来并不太难。

Red Black Trees (wiki)

这是一个nice lecture for that ..

答案 1 :(得分:2)

如果您正在寻找平衡的二叉树,可以使用“堆”

http://en.wikipedia.org/wiki/Heap_(data_structure

答案 2 :(得分:1)

您需要Binary Search Tree

正如上面的维基页面所说:

因此在最坏的情况下,它需要与树的高度成比例的时间

这意味着如果你可以使它始终保持平衡,你可以得到O(logN)进行删除