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

    package com.lkr.shujujiegou;

    /**
    * @AUTHOR:LKR
    * @DATE:2019/3/18
    * @DESCRIPTION:二叉树
    **/
    public class BinaryTree {
    private Node root;
    public BinaryTree(){
    root = null;
    }
    //将data插入到排序二叉树中
    public void insert(int data){
    Node newNode = new Node(data);
    if(root == null){
    root = newNode;
    }
    else {
    Node currennt = root;
    Node parent;
    while (true)//寻找插入的位置
    {
    parent = currennt;
    if(data<currennt.data){
    currennt = currennt.left;
    if(currennt == null){
    parent.left = newNode;
    return;
    }
    }else {
    currennt = currennt.right;
    if(currennt == null){
    parent.right = newNode;
    return;
    }
    }
    }
    }
    }
    //将数值输入构建二叉树
    public void buildTree(int [] data){
    for (int i = 0;i<data.length;i++){
    insert(data[i]);
    }
    }
    //中序遍历方法递归实现
    public void inOrder(Node localNode){
    if(localNode != null){
    inOrder(localNode.left);
    System.out.print(localNode.data+" ");
    inOrder(localNode.right);
    }
    }
    public void inOrder(){
    this.inOrder(this.root);
    }
    //先序遍历方法递归实现
    public void preOrder(Node localNode) {
    if (localNode != null) {
    System.out.print(localNode.data + " ");
    preOrder(localNode.left);
    preOrder(localNode.right);
    }
    }
    public void preOrder(){
    this.preOrder(this.root);
    }
    //后序遍历方法递归实现
    public void postOrder(Node localNode){
    if(localNode != null){
    preOrder(localNode.left);
    preOrder(localNode.right);
    System.out.print(localNode.data+" ");
    }
    }
    public void postOrder(){
    this.preOrder(this.root);
    }

    //测试
    public static void main(String[] args) {
    BinaryTree binaryTree = new BinaryTree();
    int[] data = {2,4,5,8,9,44,1,7,23,6};
    binaryTree.buildTree(data);
    System.out.println("先序遍历结果:");
    binaryTree.preOrder();
    System.out.println();
    System.out.println("中序遍历结果:");
    binaryTree.inOrder();
    System.out.println();
    System.out.println("后序遍历结果:");
    binaryTree.postOrder();
    System.out.println();


    }
    }
  • 相关阅读:
    编译原理 First集和Follow集的求法
    编译原理——算符优先分析法详解
    api.js(接口文件)
    addmul.wxs(保留两位小数-将手机号中间4位数变成*-处理时间戳)
    插槽的使用
    scroll-view小程序侧边栏(点击加载右侧商品)
    Array.of
    es6解构赋值默认值结合使用
    ES6 允许为函数的参数设置默认值,即直接写在参数定义的后面。
    es6 数组的新方法 some filter indexOf 展开运算符... let const
  • 原文地址:https://www.cnblogs.com/turningli/p/10550660.html
Copyright © 2011-2022 走看看