-1

我应该使用什么数据结构来实现 BTree?为什么?

4

3 回答 3

2

您可以使用以下类创建一个 btree 节点。它有 7 个键和 8 个指针。你可以根据btree节点的定义改变它并对其进行操作

class BTNode
{
   BTNode pointers[];
   String keys[];
   int numKeys;
   boolean leaf;

   public BTNode()  // constructor to initialize values
   {
     leaf=true;
     numKeys=0;
     keys=new String[7];
     pointers=new BTNode[8];
   }
}
于 2010-04-01T05:04:44.640 回答
1
class Node {
   int data;
   Node left;
   Node right;
}

class BNode {
   Node[] nodes;
}

这样,您将拥有指向 BNode 的每个节点的指针,以指向右子树和左子树....

于 2011-02-28T14:16:25.143 回答
0

几天前我用LinkedList实现了BTree(删除O(1),插入O(1))。我会告诉你我的代码。这是我的 BNode 结构:

public class BTree {
    private int order;
    private BNode root;


    public BTree(int order) {
        this.order = order;
    }

    public void insert(int value){}
    public boolean delete(int value){}
    public boolean contains(int value){}
    public void print(){}

}

class BNode{
    private LinkedList<Integer> values;
    private LinkedList<BNode> children;

    public BNode(){
        init(values);
        init(children); // every bnode with order k has k+1 children 
    }


}
于 2010-11-22T11:13:11.550 回答