美文网首页
二叉树的遍历和先序创建(Java实现)

二叉树的遍历和先序创建(Java实现)

作者: thebigsilly | 来源:发表于2018-04-19 23:17 被阅读0次
private static Node root;


    public static void main(String[] args) {
        root = createTree(root);
        preOrderPrint(root);
        System.out.println();
        inOrderPrint(root);
        System.out.println();
        postOrderPrint(root);
    }

    //先序构造树
    static Node createTree(Node add) {
        String str = readDataFromConsole("Please input char:");
        if (!str.equals(" ")) {
            add = new Node();
            add.elem = str;
            add.left = createTree(add.left);
            add.right = createTree(add.right);
        }
        //返回没有任何元素的节点
        return add;
    }

    static String readDataFromConsole(String prompt) {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String str = null;
        try {
            System.out.print(prompt);
            str = br.readLine();

        } catch (IOException e) {
            e.printStackTrace();
        }
        return str;
    }

    /**
     * 先序遍历
     *
     * @param root
     */
    static void preOrderPrint(Node root) {
        if (root != null) {
            System.out.print(root.elem + "\t");
            preOrderPrint(root.left);
            preOrderPrint(root.right);
        } else {
            System.out.print("$" + "\t");
        }

    }

    /**
     * 中序遍历
     *
     * @param node
     */
    static void inOrderPrint(Node node) {
        if (node != null) {
            //遍历左子树
            inOrderPrint(node.left);
            //输出节点
            System.out.print(node.elem + "\t");
            //遍历右子树
            inOrderPrint(node.right);
        } else {
            System.out.print('$' + "\t");
        }
    }

    /**
     * 后序遍历
     *
     * @param node 节点
     */
    static void postOrderPrint(Node node) {
        if (node != null) {
            inOrderPrint(node.left);
            inOrderPrint(node.right);
            System.out.print(node.elem + "\t");
        } else {
            System.out.print('$' + "\t");
        }
    }

    static class Node {
        String elem;
        Node left;
        Node right;
    }

相关文章

  • Java二叉树的遍历

    Java二叉树的遍历 利用递归和非递归实现二叉树的先序,中序,后序遍历以及使用队列实现二叉树的层次遍历

  • 二叉树BinaryTree

    Java 实现二叉树的构造以及遍历过程 二叉树遍历(先序、中序、后序)

  • 算法之二叉树

    二叉树之C++实现 创建二叉树 复制二叉树 先序遍历 递归实现 非递归实现 中序遍历 递归实现 非递归实现 后序遍...

  • 记一次Tree的遍历

    统计利用先序遍历创建的二叉树的深度 利用先序递归遍历算法创建二叉树并计算该二叉树的深度。先序递归遍历建立二叉树的方...

  • 二叉树的操作

    /*主要内容:1、实现二叉树的先序、中序、后序遍历,包括递归方式和非递归方式*/ 实现二叉树的先序、中序、后序遍历...

  • 2018-11-19

    今天在电脑上用c语言实现了二叉树的创建,并且采用递归算法的形式进行二叉树的先序遍历和中序遍历以及后序遍历。

  • 二叉树 基础操作

    二叉树的使用 二叉树结构 先序创建二叉树 DFS 先序遍历二叉树 中序遍历二叉树 后序遍历二叉树 BFS 层次遍历...

  • 数据结构之二叉树2

    二叉树的创建 二叉树的创建用到了辅助队列,通过辅助队列来创建二叉树; 二叉树的遍历 前(先)序遍历 1、递归实现 ...

  • 二叉树的基本操作

    一、基本内容 二叉树的创建(先顺遍历的方法) 二叉树的先序遍历 二叉树的中序遍历 二叉树的后序遍历 哈夫曼树的创建...

  • Java 二叉树

    创建一个二叉树对象 build 一个二叉树 遍历 先序遍历 后序遍历 中序遍历 先序遍历的结果为:0 1 3...

网友评论

      本文标题:二叉树的遍历和先序创建(Java实现)

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