【问题标题】:b-tree fullness (as percentage)b-tree 丰满度(百分比)
【发布时间】:2014-04-07 15:27:13
【问题描述】:

我目前正忙于在 JAVA 中实现 B-Tree。其中一种方法要求我以百分比形式返回完整树的完整度。该百分比应不超过 100,例如,如果返回 50,则表示树已满 50%。一棵空树是 0% 满的。

这是我正在使用的节点类

class btNode<T extends Comparable<? super T>>
{
    boolean leaf = true;
    int keyCount = 0;
    int referenceCount= 0;
    Comparable<T>[] keys = new Comparable[m-1];
    btNode<T>[] references= new btNode[m];
    btNode(int m){...}
    ...
}

总结:请帮我实现以下方法:

public int fullness()
{
    ???
}

我们将不胜感激任何建议、帮助和/或代码。

【问题讨论】:

  • 您希望用 Java 还是 C++ 来回答,因为它们是两种不同的语言?
  • 顺便说一句,Comparable&lt;T&gt;[] 是 C++ 的无效语法。
  • 我建议为 B-Tree 设置两个单独的类,即基础结构和节点类。这使您不会重复诸如keyCountreferenceCount 之类的字段。
  • @ThomasMatthews 我正在用 JAVA 实现它。而且我知道这不是 c++ 代码,但我了解 c/c++ 并且不会介意这些语言的答案,这就是我添加 c++ 标记的原因。

标签: java tree b-tree multiway-tree


【解决方案1】:

在您的 b-tree 类中,维护树中元素的数量和树的容量。

百分比是“树中的元素”/容量。

【讨论】:

  • 谢谢,不敢相信我没有想到这一点。
猜你喜欢
  • 1970-01-01
  • 2015-08-12
  • 2017-03-02
  • 2017-06-11
  • 1970-01-01
  • 2012-12-23
  • 2021-03-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多