zoukankan      html  css  js  c++  java
  • 二叉树的遍历

    节点代码

    public class Node {
    
        private Node left;
        private Node right;
        private int value;
    
        public Node(int value) {
            this.value = value;
        }
    
        @Override
        public String toString() {
            return "Node{" +
                    "value=" + value +
                    '}';
        }
    
        public int getValue() {
            return value;
        }
    
        public Node getLeft() {
            return left;
        }
    
        public void setLeft(Node left) {
            this.left = left;
        }
    
        public Node getRight() {
            return right;
        }
    
        public void setRight(Node right) {
            this.right = right;
        }
    
    }

    树代码

    public class BinaryTree {
        private Node root;
    
        public BinaryTree(Node root) {
            this.root = root;
        }
    
        public void preOrder(){
            preOrder(root);
        }
    
        public void midOrder(){
            midOrder(root);
        }
    
        public void postOrder(){
            postOrder(root);
        }
    
        /**
         * 前序遍历
         */
        private void preOrder(Node node){
            if (node==null) {
                return;
            }
            System.out.println(node.getValue());
            preOrder(node.getLeft());
            preOrder(node.getRight());
    
        }
        
        /**
         * 中序遍历
         */
        private void midOrder(Node node){
            if (node==null) {
                return;
            }
            midOrder(node.getLeft());
            System.out.println(node.getValue());
            midOrder(node.getRight());
        }
        
        /**
         * 后序遍历
         */
        private void postOrder(Node node){
            if (node==null) {
                return;
            }
            postOrder(node.getLeft());
            postOrder(node.getRight());
            System.out.println(node.getValue());
        }
    
    }

    测试代码

    public class Test {
        public static void main(String[] args) {
            testBinaryTree();
        }
    
        private static void testBinaryTree() {
            Node node1 = new Node(1);
            Node node2 = new Node(2);
            Node node3 = new Node(3);
            Node node4 = new Node(4);
            Node node5 = new Node(5);
            Node node6 = new Node(6);
            Node node7 = new Node(7);
            node1.setLeft(node2);
            node1.setRight(node3);
            node2.setLeft(node4);
            node2.setRight(node5);
            node3.setLeft(node6);
            node3.setRight(node7);
            BinaryTree binaryTree = new BinaryTree(node1);
            binaryTree.preOrder();//前序遍历 1245367
            binaryTree.midOrder();//中序遍历 4251637
            binaryTree.postOrder();//后序遍历 4526731
        }
    }
  • 相关阅读:
    [转]GPS原始数据说明
    [转]标准USB,MiniUSB接口定义
    warning C4819: 该文件包含不能在当前代码页(936)中表示的字符
    with用法
    turn out用法
    keep用法
    Stop doing和Stop to do和Stop...from doing有什么不同
    figure用法
    wanna用法
    seem用法
  • 原文地址:https://www.cnblogs.com/liuboyuan/p/14671618.html
Copyright © 2011-2022 走看看