Data structures 哪里可以找到平衡树实现?

Data structures 哪里可以找到平衡树实现?,data-structures,Data Structures,我想知道是否有人知道在互联网上的某个地方,我可以复制并粘贴一个二元搜索树的实现,该二元搜索树实现了平衡和一个算法来询问有多少节点小于某个特定值。我希望能够查询此数据结构,并询问此数据结构中有多少节点如果它仍然是相关的,你可以在每个节点中维护子树的大小,比如 请注意FindComparable函数。如果找到该对象,它将返回其索引,即小于搜索对象的节点数 如果搜索的对象不在树中,则需要获取大于搜索对象的最小节点的索引 注意当找不到对象时索引会发生什么。 最后一个节点::GetSizeNode::Ge

我想知道是否有人知道在互联网上的某个地方,我可以复制并粘贴一个二元搜索树的实现,该二元搜索树实现了平衡和一个算法来询问有多少节点小于某个特定值。我希望能够查询此数据结构,并询问此数据结构中有多少节点

我更喜欢Python、C、C++或java中的实现,但是其他人是受欢迎的。

< P>如果它仍然是相关的,你可以在每个节点中维护子树的大小,比如

请注意FindComparable函数。如果找到该对象,它将返回其索引,即小于搜索对象的节点数

如果搜索的对象不在树中,则需要获取大于搜索对象的最小节点的索引

注意当找不到对象时索引会发生什么。 最后一个节点::GetSizeNode::GetRightnode或节点::GetSizeNode::GetLeftnode将计算为0,因此有两种情况:

如果最后一个转弯是右cmp>0,您将获得最大节点的索引,该索引小于搜索对象加上1-这正是您想要的值。 如果最后一个转弯是左cmp<0,您将得到最小节点的索引,该索引大于搜索对象减去1。 因此,当找不到对象时,您可以返回以下内容,而不是返回大小:

index + (cmp < 0)?1:0;

不,不是真的。我希望通过复制和粘贴来理解底层算法。然后,我也可以用它作为我正试图编写的算法的构建块。