二叉树——深度遍历

public class BinaryTree {
    public class TreeNode {
        String data;
        TreeNode left;
        TreeNode right;
        public TreeNode(String data, TreeNode left, TreeNode right) {
            this.data = data;
            this.left = left;
            this.right = right;
        }
        public String getData(){
            return data;

        }
        public void setData(String data){

        }
        public TreeNode getLeftNode(){
            return left;
        }
        public void setLeftNode(TreeNode leftNode){
            this.left=leftNode;

        }
        public TreeNode getRightNode(){
            return right;
        }
        public void setRightNode(TreeNode rightNode){
            this.right=rightNode;
        }
    }
    public TreeNode init(){
        TreeNode D=new TreeNode("D",null,null);
        TreeNode H=new TreeNode("H",null,null);
        TreeNode I=new TreeNode("I",null,null);
        TreeNode J=new TreeNode("J",null,null);
        TreeNode P=new TreeNode("P",null,null);
        TreeNode G=new TreeNode("G",P,null);
        TreeNode F=new TreeNode("F",null,J);
        TreeNode E=new TreeNode("E",H,I);
        TreeNode B=new TreeNode("B",D,E);
        TreeNode C=new TreeNode("C",F,G);
        TreeNode A=new TreeNode("A",B,C);
        return A;
    }
    public void printNode(TreeNode node){
        System.out.println(node.getData()+" ");
    }
    public void DLR(TreeNode node){//先序遍历
        this.printNode(node);
        if(node.getLeftNode()!=null){
            this.DLR(node.getLeftNode());
        }
        if(node.getRightNode()!=null){
            this.DLR(node.getRightNode());
        }
    }
    public void LDR(TreeNode node){//中序遍历
        if(node.getLeftNode()!=null){
            this.LDR(node.getLeftNode());
        }
        this.printNode(node);
        if(node.getRightNode()!=null){
            this.LDR(node.getRightNode());
        }
    }
    public void LRD(TreeNode node){//后序遍历
        if(node.getLeftNode()!=null){
            this.LRD(node.getLeftNode());
        }
        if(node.getRightNode()!=null){
            this.LRD(node.getRightNode());
        }
        this.printNode(node);
    }

    public static void main(String[] args) {
        BinaryTree binaryTree=new BinaryTree();
        TreeNode node=binaryTree.init();
        System.out.println("DLR:");
        binaryTree.DLR(node);
        System.out.println("LDR");
        binaryTree.LDR(node);
        System.out.println("LRD");
        binaryTree.LRD(node);
    }

}

猜你喜欢

转载自blog.csdn.net/Answer0902/article/details/82467257