java实现二叉树遍历

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

java实现二叉树遍历

时间: 2024-08-01 06:22:29

java实现二叉树遍历的相关文章

Java实现二叉树的创建和遍历操作(有更新)

博主强烈建议跳过分割线前面的部分,直接看下文更新的那些即可. 最近在学习二叉树的相关知识,一开始真的是毫无头绪.本来学的是C++二叉树,但苦于编译器老是出故障,于是就转用Java来实现二叉树的操作.但是二者原理是一致的,而且实现的方式也是大同小异! 下面就让我们来看看代码吧. 1.首先我们需要创建一个二叉树的节点类,便于我们对树的操作,当然了,你也可以在二叉树类的内部将节点类声明为内部类,但是这样会降低操作的灵活性.我才用的是单独创建一个BinaryTreeNode类,代码如下: package

Java实现二叉树及相关遍历方式

Java实现二叉树及相关遍历方式 在计算机科学中.二叉树是每一个节点最多有两个子树的树结构.通常子树被称作"左子树"(left subtree)和"右子树"(right subtree).二叉树常被用于实现二叉查找树和二叉堆. 下面用Java实现对二叉树的先序遍历,中序遍历,后序遍历.广度优先遍历.深度优先遍历.转摘请注明:http://blog.csdn.net/qiuzhping/article/details/44830369 package com.qiuz

java实现二叉树及遍历、删除

java实现二叉树及遍历.删除 个人网站:多猫影视[可以看各大网站的VIP视频]www.duomao.xyz 二叉树是递归定义的,其结点有左右子树之分,逻辑上二叉树有五种基本形态: (1)空二叉树——如图(a): (2)只有一个根结点的二叉树——如图(b): (3)只有左子树——如图(c): (4)只有右子树——如图(d): (5)完全二叉树——如图(e). 注意:尽管二叉树与树有许多相似之处,但二叉树不是树的特殊情形.[1] 类型 (1)完全二叉树——若设二叉树的高度为h,除第 h 层外,其它

java实现二叉树层次遍历

public class BSTNode<T extends Comparable<T>> { T key; // 关键字(键值) BSTNode<T> left; // 左孩子 BSTNode<T> right; // 右孩子 BSTNode<T> parent; // 父结点 public BSTNode(T key, BSTNode<T> parent, BSTNode<T> left, BSTNode<T&g

Java实现二叉树先序,中序,后序遍历

以下是我要解析的一个二叉树的模型形状 接下来废话不多直接上代码 一种是用递归的方法,另一种是用堆栈的方法: 首先创建一棵树: 节点对象: 1 public class Node { 2 //节点数值 3 private int data; 4 //左子节点 5 private Node leftNode; 6 //右子节点 7 private Node rightNode; 8 9 public Node(int data, Node leftNode, Node rightNode) { 10

用java实现二叉树的遍历算法

用java实现二叉树的遍历算法用java实现二叉树的遍历算法,编写二叉树类BinaryTree代码如下:package package2; public class BinaryTree { int data; //根节点数据BinaryTree left; //左子树BinaryTree right; //右子树 public BinaryTree(int data) //实例化二叉树类{this.data = data;left = null;right = null;} public vo

二叉树遍历-JAVA实现

二叉树遍历分为前序.中序.后序递归和非递归遍历.还有层序遍历. 1 //二叉树节点 2 public class BinaryTreeNode { 3 private int data; 4 private BinaryTreeNode left; 5 private BinaryTreeNode right; 6 7 public BinaryTreeNode() {} 8 9 public BinaryTreeNode(int data, BinaryTreeNode left, Binar

java数据结构之二叉树遍历的非递归实现

算法概述递归算法简洁明了.可读性好,但与非递归算法相比要消耗更多的时间和存储空间.为提高效率,我们可采用一种非递归的二叉树遍历算法.非递归的实现要借助栈来实现,因为堆栈的先进后出的结构和递归很相似.对于中序遍历来说,非递归的算法比递归算法的效率要高的多.其中序遍历算法的实现的过程如下:(1).初始化栈,根结点进栈:(2).若栈非空,则栈顶结点的左孩子结点相继进栈,直到null(到叶子结点时)退栈:访问栈顶结点(执行visit操作)并使栈顶结点的右孩子结点进栈成为栈顶结点.(3).重复执行(2),

算法之二叉树遍历

[代码示例] package com.wcs.java; import java.util.ArrayList; import java.util.List; public class BinaryTree { class TreeNode { public String data; //数据 public TreeNode leftNode; //左子树 public TreeNode rightNode; //右子树 public TreeNode(String data, TreeNode