您的位置:首页 > 编程语言 > Java开发

二叉树的4种遍历方式(前序、中序、后序、层次)Java版

2017-04-15 09:49 489 查看
二叉树的4种遍历(前序、中序、后序、层次)



package TestDemo;

import java.util.LinkedList;
import java.util.Queue;

public class Test1 {
private int data;
private Test1 lchild;
private Test1 rchild;

public Test1(int data){
this.data=data;
}

//前序遍历
public static void preOrder(Test1 t){
if(t==null) return;
System.out.print(t.data+" ");
preOrder(t.lchild);
preOrder(t.rchild);
}

//中序遍历
public static void inOrder(Test1 t){
if(t==null) return;
preOrder(t.lchild);
System.out.print(t.data+" ");
preOrder(t.rchild);
}

//后序遍历
public static void PostOrder(Test1 t){
if(t==null) return;
preOrder(t.lchild);
preOrder(t.rchild);
System.out.print(t.data+" ");
}

//层次遍历
public static void levelOrder(Test1 t){
if(t==null) return ;
Queue<Test1> queue=new LinkedList <Test1>();
queue.offer(t);
Test1 current=null;
while(!queue.isEmpty()){
current=queue.poll();
System.out.print(current.data+"->");
if(current.lchild!=null){
queue.offer(current.lchild);
}
if(current.rchild!=null){
queue.offer(current.rchild);
}
}
}

public static void main(String[] args) {
Test1 b1=new Test1(1);
Test1 b2=new Test1(2);
Test1 b3=new Test1(3);
Test1 b4=new Test1(4);
Test1 b5=new Test1(5);

b1.lchild=b2;
b1.rchild=b3;
b2.lchild=b4;
b2.rchild=b5;

//递归遍历方式
System.out.print("前序遍历:");
Test1.preOrder(b1);						//前序
System.out.println();
System.out.print("中序遍历:");
Test1.inOrder(b1);						//中序
System.out.println();
System.out.print("后序遍历:");
Test1.PostOrder(b1);					//后序
System.out.println();
System.out.print("层次遍历:");
Test1.levelOrder(b1);				    //层次
System.out.println();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 递归 二叉树 遍历
相关文章推荐