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

二叉树遍历Java实现

2015-08-18 13:53 507 查看
【仅贴代码及测试结果】

-------------------BinaryTree.java------------------------------

class Tree<E>{
E element;
Tree<E> lChild;
Tree<E> rChild;
public Tree(E e){
element = e;
}
}
public class BinaryTree {

/**
* 树形如下:
*         1
*     / \
*    2   3
*    \   / \
*     4  5  6
*/
public static void main(String[] args) {

Tree<Integer> n1 = new Tree<Integer>(1);
Tree<Integer> n2 = new Tree<Integer>(2);
Tree<Integer> n3 = new Tree<Integer>(3);
Tree<Integer> n4 = new Tree<Integer>(4);
Tree<Integer> n5 = new Tree<Integer>(5);
Tree<Integer> n6 = new Tree<Integer>(6);
System.out.println("Construct the tree...");
n2.rChild=n4;
n3.lChild=n5;
n3.rChild=n6;
n1.lChild=n2;
n1.rChild=n3;

System.out.println("打印先序遍历结果:");
firstOrder(n1);
System.out.println("\n打印中序遍历结果:");
midOrder(n1);
System.out.println("\n打印后序遍历结果:");
lastOrder(n1);
}

public static <E> void firstOrder(Tree<E> root){
if(root!=null){
System.out.print(root.element+" ");
firstOrder(root.lChild);
firstOrder(root.rChild);
}
}
public static <E> void lastOrder(Tree<E> root){
if(root!=null){
lastOrder(root.lChild);
lastOrder(root.rChild);
System.out.print(root.element+" ");
}
}
public static <E> void midOrder(Tree<E> root){
if(root!=null){
midOrder(root.lChild);
System.out.print(root.element+" ");
midOrder(root.rChild);
}
}

}


输出结果:

Construct the tree...
打印先序遍历结果:
1 2 4 3 5 6
打印中序遍历结果:
2 4 1 5 3 6
打印后序遍历结果:
4 2 5 6 3 1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: