二叉树的遍历代码java 二叉树的三种遍历代码

急求java实现二叉树遍历程序 多少分都行 啊

在JAVA中实现二叉树,程序如下(转载)

十余年的孝感网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。营销型网站的优势是能够根据用户设备显示端的尺寸不同,自动调整孝感建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联从事“孝感网站设计”,“孝感网站推广”以来,每个客户项目都认真落实执行。

//********************************************************************

//filename: BinaryTreeTest.java

//purpose: test a binarytree with java

//date: 2002/12/18

//author: flyfan

//ver: 0.1

//********************************************************************

public class BinaryTreeTest

{

public static void main(String args[])

{

BinaryTreeTest b=new BinaryTreeTest();

int data[]={12,11,34,45,67,89,56,43,22,98};

BinaryTree root =new BinaryTree(data[0]);

System.out.print("二叉树的中的数据: ");

for(int i=1;i{

root.insertTree(root,data[i]);

System.out.print(data[i-1]+";");

}

System.out.println(data[data.length-1]);

int key=Integer.parseInt(args[0]);

if(b.searchkey(root,key))

{

System.out.println("找到了:"+key);

}

else

{

System.out.println("没有找到:"+key);

}

}

public boolean searchkey(BinaryTree root, int key)

{

boolean bl=false;

if(root==null)

{

bl=false;

return bl;

}

else if(root.data==key)

{

bl=true;

return bl;

}

else if(key=root.data)

{

return searchkey(root.rightpoiter,key);

}

return searchkey(root.leftpoiter,key);

}

}

class BinaryTree

{

int data;

BinaryTree leftpoiter;

BinaryTree rightpoiter;

BinaryTree(int data)

{

this.data=data;

leftpoiter=null;

rightpoiter=null;

}

public void insertTree(BinaryTree root, int data)

{

if(data=root.data)

{

if(root.rightpoiter==null)

{

root.rightpoiter=new BinaryTree(data);

}

else

{

insertTree(root.rightpoiter,data);

}

}

else

{

if(root.leftpoiter==null)

{

root.leftpoiter=new BinaryTree(data);

}

else

{

insertTree(root.leftpoiter,data);

}

}

}

}

//end

java 二叉树前序遍历

//类Node定义二叉树结点的数据结构;

//一个结点应包含结点值,左子结点的引用和右子结点的引用

class Node{

public Node left; //左子结点

public Node right; //右子结点

public int value; //结点值

public Node(int val){

value = val;

}

}

public class Traversal

{

//read()方法将按照前序遍历的方式遍历输出二叉树的结点值

//此处采用递归算法会比较简单,也容易理解,当然也可以用

//循环的方法遍历,但会比较复杂,也比较难懂。二叉树遍历

//用递归算法最为简单,因为每个结点的遍历方式都是,根,

//左,右,递归的调用可以让每个结点以这种方式遍历

public static void read(Node node){

if(node != null){

System.out.println(node.value);//输出当前结点的值

if(node.left != null)

read(node.left); //递归调用 先读左结点

if(node.right != null)

read(node.right); //递归调用 后读右结点

}

}

public static void main(String[] args){

//初始化5个结点,分别初始值为1,2,3,4,5

Node n1 = new Node(1);

Node n2 = new Node(2);

Node n3 = new Node(3);

Node n4 = new Node(4);

Node n5 = new Node(5);

//构建二叉树,以n1为根结点

n1.left = n2;

n1.right = n5;

n2.left = n3;

n2.right = n4;

read(n1);

}

}

注释和代码都是我自己写的,如果楼主觉得有的注释多余可以自己删除一些!代码我都编译通过,并且运行结果如你提的要求一样!你只要把代码复制编译就可以了,注意要以文件名Traversal.java来保存,否则编译不通过,因为main函数所在的类是public类型的!

怎样使用java对二叉树进行层次遍历

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(dataroot.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 package2;

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,22,16,48,90,46,9,40};

BinaryTree root = new BinaryTree(array[0]);   //创建二叉树

for(int i=1;iarray.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 二叉树的三种遍历代码
网页链接:http://hbruida.cn/article/hejigh.html