zoukankan      html  css  js  c++  java
  • Java构造二叉树、树形结构先序遍历、中序遍历、后序遍历

    package com.example.demo;
    
    public class BTree {
        public int data;
        public BTree left;
        public BTree rigth;
    
        public boolean hasLeft(){
            return left != null;
        }
    
        public boolean hasRigth(){
            return rigth != null;
        }
    
        public BTree(){}
    }
    
    class main{
        public static void main(String[] args) {
            BTree root = new BTree();
            root.data = 0;
    
            BTree node1 = new BTree();
            node1.data = 1;
    
            BTree node2 = new BTree();
            node2.data = 2;
    
            BTree node3 = new BTree();
            node3.data = 3;
    
            BTree node4 = new BTree();
            node4.data = 4;
    
            BTree node5 = new BTree();
            node5.data = 5;
    
            BTree node6 = new BTree();
            node6.data = 6;
    
            root.left = node1;
            root.rigth = node2;
    
            node1.left = node3;
            node1.rigth = node4;
    
            node2.left = node5;
            node2.rigth = node6;
    
            System.out.println("先序遍历二叉树:");
            queryFirst(root);
            System.out.println();
    
            System.out.println("中序遍历二叉树:");
            queryMiddle(root);
            System.out.println();
    
            System.out.println("后序遍历二叉树:");
            queryLast(root);
            System.out.println();
        }
        //先序遍历二叉树
        public static void queryFirst(BTree tree){
            if(tree == null){
                return;
            }
            System.out.print(tree.data+"	");
            if(tree.hasLeft()){
                queryFirst(tree.left);
            }
            if(tree.hasRigth()){
                queryFirst(tree.rigth);
            }
        }
        //中序遍历二叉树
        public static void queryMiddle(BTree tree){
            if(tree == null){
                return;
            }
            if(tree.hasLeft()){
                queryMiddle(tree.left);
            }
            System.out.print(tree.data+"	");
            if(tree.hasRigth()){
                queryMiddle(tree.rigth);
            }
        }
        //后序便利二叉树
        public static void queryLast(BTree tree){
            if(tree == null){
                return;
            }
            if(tree.hasLeft()){
                queryLast(tree.left);
            }
            if(tree.hasRigth()){
                queryLast(tree.rigth);
            }
            System.out.print(tree.data+"	");
        }
    }
    先序遍历二叉树:
    0    1    3    4    2    5    6    
    中序遍历二叉树:
    3    1    4    0    5    2    6    
    后序遍历二叉树:
    3    4    1    5    6    2    0
  • 相关阅读:
    Yii2安装任务调度扩展
    分享书籍[writing idiomatic python ebook]
    python待解决问题笔记
    dojo使用笔记: 自定义ConfirmDialog
    dojo使用疑难杂症集锦
    学习"大众点评网的架构设计与实践"
    一个前端html模板处理引擎(javascript)
    日历设计之重复事件规则设计
    TCP/IP之TCP的建立与终止
    python正则表达式
  • 原文地址:https://www.cnblogs.com/i-tao/p/11461014.html
Copyright © 2011-2022 走看看