标签: c++ select binary-search-tree
我正在寻找一个给出索引k的算法,找到树中第k个最小的数字(称之为x),并返回所有大于x的数字的总和。
假设我有一个5个节点的等级树,Select(2)应该返回树中最大3个节点的总和。
我在C ++中使用此代码,但我认为在某些情况下我得到的结果不准确,我无法解决我的算法错误。我在树的每个节点中添加了两个新字段,其中每个节点都包含其大小的字段。子树(字段:W)和其中所有节点的总和。子树(字段:sub)。
以下是代码:
B1:P1
}