2009-10-30 35 views
-1

我應該使用什麼數據結構來實現BTree?爲什麼?好的ADT來實現BTREE

+2

B樹*爲*數據結構體。所以這是一個奇怪的問題。你可以說得更詳細點嗎? – z5h 2009-10-30 01:30:28

回答

2

您可以使用以下類創建一個btree節點..它有7個鍵和8個指針。 ü可以根據B樹節點的定義改變它,就可以進行操作

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]; 
    } 
} 
0

我幾天來實現B樹前用鏈表(刪除O(1),插入O(1))。我會告訴你我的代碼。這裏是我的B節點結構:

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 
    } 


} 
1
class Node { 
    int data; 
    Node left; 
    Node right; 
} 

class BNode { 
    Node[] nodes; 
} 

這樣,您將有指針指向B節點的每個節點指向左,右子樹....