標籤:
【僅貼代碼及測試結果】
-------------------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
二叉樹遍曆Java實現