package cn.edu.nju.sisv;
import cn.edu.nju.sisv.cn.edu.nju.sisv.composite.*;
import java.util.Iterator;
/**
* Created by Lu on 2014/6/28.
* rootNode
* / \
* left1 right1
* / \ \
* leaf1 right1 right3
* / / \
* leaf3 leaf4 leaf5
*/
public class Main {
public static void main(String[] args) {
AbstractNode root = new RootNode("rootNode");
AbstractNode left1 = new LeftChild("left1");
AbstractNode right1 = new RightChild("right1");
AbstractNode right2 = new RightChild("right2");
AbstractNode right3 = new RightChild("right3");
AbstractNode leaf1 = new LeafNode("leaf1");
AbstractNode leaf2 = new LeafNode("leaf2");
AbstractNode leaf3 = new LeafNode("leaf3");
AbstractNode leaf4 = new LeafNode("leaf4");
BinTree binTree = new BinTree(root);
root.addLeftChild(left1);
left1.addLeftChild(leaf1);
left1.addRightChild(right2);
right2.addLeftChild(leaf2);
root.addRightChild(right1);
right1.addRightChild(right3);
right3.addLeftChild(leaf3);
right3.addRightChild(leaf4);
Iterator preOrderItr = binTree.createPreOrderItr();
while (preOrderItr.hasNext()) {
System.out.print(preOrderItr.next().toString()+" ");
}
System.out.println("以上先序遍历。");
Iterator inOrderItr = binTree.createInOrderItr();
while (inOrderItr.hasNext()) {
System.out.print(inOrderItr.next().toString()+" ");
}
System.out.println("以上中序遍历。");
Iterator postOrderItr = binTree.createPostOrderItr();
while (postOrderItr.hasNext()) {
System.out.print(postOrderItr.next().toString()+" ");
}
System.out.println("以上后序遍历。");
}
}