BST的第n个最小元素

时间:2010-02-24 16:39:49

标签: algorithm

给出BST(二叉搜索树)T. 如何找到T的第n个最小元素?

2 个答案:

答案 0 :(得分:2)

二进制搜索树是有效排序的,因此您只需要按顺序遍历树并到达第n个点。如果树完全平衡,您可以计算到达的位置。

答案 1 :(得分:0)

如果二进制搜索树没有完全平衡,那么您需要进行递归搜索以找到第n个最小元素。通过让每个节点存储每个分支指针所指向的子节点数量,可以大大加速这一点,从而有效地将搜索转换为二进制节点。但是,这会增加树更新的开销,因为每次插入或删除现在都需要执行从叶到根的遍历来更新节点计数。

或者,您可以保持树的平衡,并使用上面的答案。