Java創建二叉樹并遍歷的代碼

pc688 9年前發布 | 2K 次閱讀 Java

Java創建二叉樹并遍歷的代碼

public class BinaryTree {

private Node root;

/**
 *
 * 內部節點類
 * @author yhh
 */
private class Node{
    private Node left;
    private Node right;
    private int data;
    public Node(int data){
        this.left = null;
        this.right = null;
        this.data = data;
    }
}

public BinaryTree(){
    root = null;
}

/**
 * 遞歸創建二叉樹
 * @param node
 * @param data
 */
public void buildTree(Node node,int data){
    if(root == null){
        root = new Node(data);
    }else{
        if(data < node.data){
            if(node.left == null){
                node.left = new Node(data);
            }else{
                buildTree(node.left,data);
            }
        }else{
            if(node.right == null){
                node.right = new Node(data);
            }else{
                buildTree(node.right,data);
            }
        }
    }
}

/**
 * 前序遍歷
 * @param node
 */
public void preOrder(Node node){
    if(node != null){
        System.out.println(node.data);
        preOrder(node.left);
        preOrder(node.right);
    }
}

/**
 * 中序遍歷
 * @param node
 */
public void inOrder(Node node){
    if(node != null){
        inOrder(node.left);
        System.out.println(node.data);
        inOrder(node.right);
    }
}

/**
 * 后序遍歷
 * @param node
 */
public void postOrder(Node node){
    if(node != null){
        postOrder(node.left);
        postOrder(node.right);
        System.out.println(node.data);
    }
}

public static void main(String[] args) {
    int[] a = {2,4,12,45,21,6,111};
    BinaryTree bTree = new BinaryTree();
    for (int i = 0; i < a.length; i++) {
        bTree.buildTree(bTree.root, a[i]);
    }
    bTree.preOrder(bTree.root);
    bTree.inOrder(bTree.root);
    bTree.postOrder(bTree.root);
}

}</pre>

 本文由用戶 pc688 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!