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();


    }
    }
  • 相关阅读:
    使用fiddler对手机APP进行抓包
    接口测试xml格式转换成json
    python datetime笔记
    python time模块详解
    python time相关操作
    2013流行Python项目汇总
    大象的崛起!Hadoop七年发展风雨录
    利用Mahout实现在Hadoop上运行K-Means算法
    20个开源项目托管站点推荐
    有用的国外开源项目网址
  • 原文地址:https://www.cnblogs.com/turningli/p/10550660.html
Copyright © 2011-2022 走看看