package com.tree.demo;

public class BinaryTree {

int data; // 根节点数据   BinaryTree left; // 左子树

BinaryTree right; // 右子树

public BinaryTree(int data) // 实例化二叉树类

{

this.data = data;

left = null;

right = null;

}

public void insert(BinaryTree root, int data) { // 向二叉树中插入子节点

if (data > root.data) // 二叉树的左节点都比根节点小

{

if (root.right == null) {

root.right = new BinaryTree(data);

} else {

this.insert(root.right, data);

}

}

else { // 二叉树的右节点都比根节点大

if (root.left == null) {

root.left = new BinaryTree(data);

} else {

this.insert(root.left, data);

}

}

}

}

package com.tree.demo;

public class BinaryTreePreorder {   public static void preOrder(BinaryTree root){  //先根遍历     if(root!=null){      System.out.print(root.data+"-");      preOrder(root.left);      preOrder(root.right);     }    }       public static void inOrder(BinaryTree root){     //中根遍历

if(root!=null){      inOrder(root.left);      System.out.print(root.data+"--");      inOrder(root.right);     }    }       public static void postOrder(BinaryTree root){    //后根遍历

if(root!=null){      postOrder(root.left);      postOrder(root.right);      System.out.print(root.data+"---");     }    }       public static void main(String[] str){     //int[] array = {12,76,35,12,16,47,90,46,9,98};      int[] array = {12,76,35,22,16,48,90,46,9,40};     BinaryTree root = new BinaryTree(array[0]);   //创建二叉树     for(int i=1;i<array.length;i++){      root.insert(root, array[i]);       //向二叉树中插入数据     }     System.out.println("先根遍历:");     preOrder(root);     System.out.println();     System.out.println("中根遍历:");     inOrder(root);     System.out.println();     System.out.println("后根遍历:");     postOrder(root);    } }

转载于:https://www.cnblogs.com/fxiang/p/3853632.html

java实现二叉树遍历相关推荐

  1. 【二叉树Java】二叉树遍历前序中序后序遍历的非递归写法

    本文主要介绍二叉树前序中序后序遍历的非递归写法 在探讨如何写出二叉树的前序中序后序遍历代码之前,我们先来明确一个问题,前序中序后序遍历根据什么区分? 二叉树的前序中序后序遍历,是相较根节点说的.最先遍 ...

  2. java数据结构二叉树遍历_java数据结构 之 二叉树的遍历(1)

    树(tree)是一种抽象数据类型(ADT),用来模拟具有树状结构性质的数据集合.它是由n(n>0)个有限节点通过连接它们的边组成一个具有层次关系的集合 节点:上图的圆圈,比如A,B,C等都是表示 ...

  3. Java版二叉树遍历,查找,顺序化存储代码实现

    前中后序遍历,查找 package Tree; /*** 二叉树前 中 后 遍历,查找* @author bai**/ public class BinaryTreeDemo {public stat ...

  4. java 遍历二叉树_java实现二叉树遍历的三种方式

    本文实例为大家分享了java实现二叉树遍历的具体代码,供大家参考,具体内容如下 二叉树如下: 遍历结果如下: 以下是实现代码: package binTree; import java.util.St ...

  5. 二叉树遍历(附Java实现代码)

    二叉树遍历(附Java实现代码) 二叉树遍历可以有两种方法:递归遍历的方式与非递归遍历的方式. 先序遍历就是先遍历根节点再左再右: 中序遍历就是先左再根再右: 后序遍历就是先左再右再根: 先构建这棵树 ...

  6. 分治法在二叉树遍历中的应用(JAVA)--二叉查找树高度、前序遍历、中序遍历、后序遍

    分治法在二叉树遍历中的应用 二叉树本身就是由两个更小的部分组成--左子树和右子树,所以二叉树的问题非常适合用分治法来解决. 二叉树的高度:从叶子到根之间的最长路径.我们可以理解为根的左子树高度和右子树 ...

  7. Java实现二叉树的多种遍历

    简述: 用Java实现二叉树的前序,中序,后序,层序遍历, S型层序遍历 算法简述: 前三个算法在于输出当前节点的位置, 1 前序: 在递归左右儿子之前,输出当前节点 void PreOrderPri ...

  8. JavaSE_Java/C++模拟实现二叉树、C++/Java四种二叉树遍历题型(递归、非递归、Morris)遍历

    文章目录 1.Java模拟实现二叉树(前序构建二叉树) 2.C++模拟实现二叉树(层序构建二叉树) 3.Java/C++三种二叉树遍历方式 前序遍历 1)递归版本 2)非递归版本 3)Morris遍历 ...

  9. 【树】二叉树遍历算法(深度优先、广度优先遍历,前序、中序、后序、层次)及Java实现...

    [树]二叉树遍历算法(深度优先.广度优先遍历,前序.中序.后序.层次)及Java实现 目录 一.前序遍历 二.中序遍历 三.后序遍历 四.层次遍历 遍历的作用 二叉树是一种非常重要的数据结构,很多其它 ...

  10. 用Java实现二叉树前序遍历、中序遍历和后序遍历。

    用Java实现二叉树前序遍历.中序遍历和后序遍历. 解析: public class Tree {private int data; /* 数据节点 */private Tree left; /* 左 ...

最新文章

  1. android 使用Ksoap2工具类实现WebService网络编程
  2. shell脚本之for循环
  3. Ubuntu20.04上安装部署Elasticsearch
  4. 解决Winform程序在不同分辨率系统下界面混乱问题
  5. Educational Codeforces Round 72 (Rated for Div. 2) D. Coloring Edges dfs树/拓扑找环
  6. 同一个html页面中两个area,HTML中的map和area标签
  7. 如何有效的为Windows XP减肥
  8. ##CSP认证 201909-2小明种苹果(续)(100分)
  9. 程序员面试金典——9.8硬币表示
  10. c# 微信公众号模板消息推送
  11. java计算机毕业设计绿洲小区快递配送系统源代码+数据库+系统+lw文档
  12. 【地平线旭日X3派试用体验】基于MIPI Camera的目标检测 web 端展示,全流程(第三节)
  13. baidu patchrom项目 make后刷机包脚本多一个0解决
  14. JAVA:实现RodCutting棒材切割问题算法(附完整源码)
  15. CC3200 TI RTOS LPDS模式
  16. Java内存模型(JMM)
  17. Baumer工业相机堡盟相机使用CameraExplorer软件进行相机参数保存与 UserSet参数设置
  18. 学python还是计算机三级,考试无忧全国计算机等级考试python(python二级证书有用吗)...
  19. 圣戈班集团2019年销售额426亿欧元,增长2.4%
  20. 微信小程序之movable-view的direction用法

热门文章

  1. 为何说要多用组合少用继承?
  2. flume hdfs sink 文件滚动策略
  3. java DataInput接口
  4. Linux系统下Nginx支持ipv6
  5. NSA漏洞披露政策:攻击和防御间的权衡
  6. urllib urllib2 自己用
  7. SQL Server | Mysql 对表的unique 的实现方式
  8. Windows Server 2008 活动目录备份的几种方法
  9. AAA 及 RADIUS/HWTACACS 协议配置
  10. c++(/clr)非托管类型和托管类型互转