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

来源:互联网 发布:人工智能迅雷下载 编辑:程序博客网 时间:2024/06/05 08:36

二叉树的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();}}
0 0
原创粉丝点击