我应该使用什么数据结构来实现BTree?为什么呢?
答案 0 :(得分: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];
}
}
答案 1 :(得分:1)
class Node {
int data;
Node left;
Node right;
}
class BNode {
Node[] nodes;
}
这样你就可以指向BNode的每个节点指向左右子树....
答案 2 :(得分: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
}
}