在二进制搜索树中找到第n个节点

时间:2015-10-26 17:19:05

标签: c++ binary-search-tree

使用此引导程序:

template <class Comparable>
const Comparable& AugmentedBinarySearchTree<Comparable>::NthElement(int n)
{
  int *i = 0;
  return NthElement(root, i, n)->element;
}

如何使用nodesVisited指针在BST中找到第n个节点以跟踪已检查的节点?

template <class Comparable>
BinaryNode<Comparable>* AugmentedBinarySearchTree<Comparable>::
NthElement(BinaryNode<Comparable> *t, int *nodesVisited, int n) const
{

}

BST中的每个节点都有一个指针leftright以及一个名为template <class Comparable>的{​​{1}}值。

1 个答案:

答案 0 :(得分:0)

对我来说(从您的评论中)听起来像是在寻找Boost的多索引容器(http://www.boost.org/doc/libs/1_59_0/libs/multi_index/doc/index.html)。您将拥有矢量和地图视图,并使用push_back插入到矢量视图中,同时使用地图视图按键搜索。然后,您将使用向量视图来获取插入第n个元素。