1. 程式人生 > >JAVA資料結構--根據樹高生成完全二叉樹(java實現)

JAVA資料結構--根據樹高生成完全二叉樹(java實現)

public class BTree {
    private int node;
    private BTree LChild ;
    private BTree RChild ;

    private BTree(int node){
        this.node = node;
        LChild = null;
        RChild = null;
    }
    public BTree getL(){
        return LChild;
    }
    public BTree getR(){
        return RChild;
    }
    public void setL(BTree L){
        this.LChild = L;
    }
    public void setR(BTree R){
        this.RChild = R;
    }
    public int getNode(){
        return node;
    }
    /**
     * 根據樹高建樹
     * @param num
     * @return
     */
    public static BTree InitBTree(int num){

        if(num == 0){
            return null;
        }
        BTree root = new BTree(num);
        root.setL(InitBTree(num-1));
        root.setR(InitBTree(num-1));
        return root;
    }
    /**
     * 統計節點個數
     * @param node
     * @return
     */
    public static int getNodeNum(BTree node){
        if(node.getL()==null && node.getR()==null)
            return 1;
        return getNodeNum(node.getL()) + getNodeNum(node.getR()) + 1;
    }
    public static void main(String[] args){
        BTree root2 = InitBTree(3);
        System.out.println(getNodeNum(root2));

    }
}