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


    }
    }
  • 相关阅读:
    C# List对象集合重组为新集合和获取某个字段组成新数组
    sqlserver xml for path html标签被转译问题
    高中信息技术(Python)重难点3:最大公约数
    高中信息技术(Python)重难点2:编码
    高中信息技术(Python)重难点1:数制
    天天快乐编程监考系统使用文档
    2021年OI集训队赛前模拟5题解
    2021年OI集训队赛前模拟4题解
    mysql-shell部署MGR
    GreatSQL手工部署mgr集群
  • 原文地址:https://www.cnblogs.com/turningli/p/10550660.html
Copyright © 2011-2022 走看看