二叉樹java實現

 

關於二叉樹的原理,網上一大堆,我這裏就不寫了。

因爲最近在學習數據結構,但是在網上找了很久都沒有找到適合自己,所以自己就硬着頭皮寫了。

廢話不多話,大家都是衝着代碼來的,那就上代碼

public class BinaryTree {
    private Node root;

    class Node{
        private int data;
        private Node leftNode;
        private Node rightNode;

        public Node(int data){
            this.data=data;
        }
    }
    public void addNode(int data){
        Node node=new Node(data);
        if(root==null){
            root=node;
        }else{
            Node current=root;//通過根節點遍歷
            while(true){
                if(data<current.data){//放入左節點
                    if(current.leftNode==null){
                        current.leftNode=node;
                        return ;
                    }
                    current=current.leftNode;
                }else{//放入右節點中
                    if(current.rightNode==null){
                        current.rightNode=node;
                        return ;
                    }
                    current=current.rightNode;
                }
            }
        }
    }
    public void preOrder(Node node){
        System.out.print(node.data+" ");
        if (node.leftNode!=null){
            preOrder(node.leftNode);
        }
        if (node.rightNode!=null){
            preOrder(node.rightNode);
        }
    }

    public static void main(String[] args) {
        BinaryTree tree=new BinaryTree();
        tree.addNode(3);
        tree.addNode(4);
        tree.addNode(5);
        tree.addNode(2);
        tree.addNode(1);
        tree.preOrder(tree.root);

    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章