美文网首页
二叉树的前中后遍历

二叉树的前中后遍历

作者: YAOPRINCESS | 来源:发表于2020-07-14 18:27 被阅读0次

结果

image.png

完整代码

package com.nan;

/**
 * @author klr
 * @create 2020-07-14-18:06
 */
public class BinaryTree {

    public static void main(String[] args) {
        TreeNode a = new TreeNode(1, "a");
        TreeNode b = new TreeNode(2, "b");
        TreeNode c = new TreeNode(3, "c");
        TreeNode d = new TreeNode(4, "d");
        TreeNode e = new TreeNode(5, "e");
        TreeNode f = new TreeNode(6, "f");
        TreeNode g = new TreeNode(7, "g");
        Tree tree = new Tree(d);
        d.setLeft(b);
        d.setRight(f);
        b.setLeft(a);
        b.setRight(c);
        f.setLeft(e);
        f.setRight(g);
        System.out.println("前序遍历");
        tree.preOrder();
        System.out.println();
        System.out.println("中序遍历");
        tree.infixOrder();
        System.out.println();
        System.out.println("后序遍历");
        tree.postOrder();

    }
}

class Tree{

    private TreeNode root;

    public Tree(TreeNode root) {
        this.root = root;
    }

    public void preOrder(){
        root.preOrder();
    }

    public void infixOrder(){
        root.infixOrder();
    }

    public void postOrder(){
        root.postOrder();
    }
}

class TreeNode{
    private int no;
    private String name;
    private TreeNode left;//左节点
    private TreeNode right;//右结点

    //前序遍历
    public void preOrder(){
        System.out.println(no);
        //如果有左节点
        if (this.left != null) {
            this.left.preOrder();
        }
        if (this.right != null) {
            this.right.preOrder();
        }
    }

    //中序遍历
    public void infixOrder(){
        //如果有左节点
        if (this.left != null) {
            this.left.infixOrder();
        }
        System.out.println(no);
        if (this.right != null) {
            this.right.infixOrder();
        }
    }

    //后序遍历
    public void postOrder(){
        if (this.left != null) {
            this.left.postOrder();
        }
        if (this.right != null) {
            this.right.postOrder();
        }
        System.out.println(no);
    }


    public TreeNode(int no, String name) {
        this.no = no;
        this.name = name;
    }

    public int getNo() {
        return no;
    }

    public void setNo(int no) {
        this.no = no;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public TreeNode getLeft() {
        return left;
    }

    public void setLeft(TreeNode left) {
        this.left = left;
    }

    public TreeNode getRight() {
        return right;
    }

    public void setRight(TreeNode right) {
        this.right = right;
    }

    @Override
    public String toString() {
        return "TreeNode{" +
                "no=" + no +
                ", name='" + name + '\'' +
                '}';
    }
}

相关文章

  • 二叉树的前中后序遍历

    二叉树的前中后遍历,其前中后,您可理解为指的是根结点所在的序。 前序遍历:前序遍历的顺序为根-左-右中序遍历:中序...

  • 二叉树三种遍历Swift代码实现

    二叉树的三种遍历 二叉树 前序遍历 中序遍历 后序遍历 另外 不得不说,得到二叉树的前序遍历和中序遍历的结果或者后...

  • 二叉树的各种遍历方法

    二叉树的常用遍历方法 二叉树常用的遍历方法包括: 前序遍历 中序遍历 后序遍历 层次遍历 而前三种遍历的具体实现上...

  • 树结构入门教程-二叉树的顺序存储

    经过前面的学习我们已经熟悉了二叉树的基本操作,其中包括遍历(前中后)查找(前中后)删除等操作,有了这些二叉树的基础...

  • 二叉树的一些基本知识总结

    学了学二叉树,这里说说怎样遍历二叉树.四种方式:前序遍历,中序遍历,后序遍历,层次遍历. 主要说说递归的遍历方法前...

  • 左神算法笔记——Morris遍历

    基本问题——实现二叉树的前序、中序、后序遍历 (递归、非递归,mirros方法) 递归 递归方式下的前中后遍历 非...

  • 一般二叉树普通二叉树,前、中、后序遍历以及搜索 顺序存储二叉树将数组以树的思想标识,包括前、中、后续遍历 线索化二...

  • LeetCode94 二叉树的中序遍历

    题目 二叉树的中序遍历 题目描述 给出一个二叉树 用中序遍历输出 方案 中序遍历:考察到一个节点后,将其暂存,遍历...

  • 围绕二叉树的一些写递归方法的总结

    首先,我们先把二叉树的前中后遍历用递归写一遍: 先定义二叉树数据结构: PublicclassTreeNode {...

  • 线索二叉树

    Overview 将二叉树中没有子节点的节点称为空指针域,利用二叉树的空指针域,按照前中后某种遍历方式存放对应的前...

网友评论

      本文标题:二叉树的前中后遍历

      本文链接:https://www.haomeiwen.com/subject/tbifhktx.html