class Tree{
public static void main(String args[]){
// 葉子節點
TreeModels t15=new TreeModels(null,null,15);
TreeModels t14=new TreeModels(null,null,14);
TreeModels t13=new TreeModels(null,null,13);
TreeModels t12=new TreeModels(null,null,12);
TreeModels t11=new TreeModels(null,null,11);
TreeModels t10=new TreeModels(null,null,10);
TreeModels t9=new TreeModels(null,null,9);
TreeModels t8=new TreeModels(null,null,8);
//内部節點
TreeModels t7=new TreeModels(t14,t15,7);
TreeModels t6=new TreeModels(t12,t13,6);
TreeModels t5=new TreeModels(t10,t11,5);
TreeModels t4=new TreeModels(t8,t9,4);
TreeModels t3=new TreeModels(t6,t7,3);
TreeModels t2=new TreeModels(t4,t5,2);
//根節點
TreeModels t1=new TreeModels(t2,t3,1);
System.out.println("先序");
preGet(t1);
System.out.print("\r\n中序\r\n");
orGet(t1);
System.out.println("\r\n後序");
LaGet(t1);
System.out.println("\r\n");
RorGetTree(t1,0);
}
public static void preGet(TreeModels root){//先序
if(root!=null){
System.out.print(root.getData()+" ");
preGet(root.getLeft());
preGet(root.getRight());
}
}
public static void orGet(TreeModels root){//中序
if(root!=null){
orGet(root.getLeft());
System.out.print(root.getData()+" ");
orGet(root.getRight());
}
}
public static void LaGet(TreeModels root){//後續
if(root!=null){
LaGet(root.getLeft());
LaGet(root.getRight());
System.out.print(root.getData()+" ");
}
}
public static void RorGetTree(TreeModels root,int deep){//将二叉樹90°倒置
if(root==null) return;
RorGetTree(root.getRight(),deep+1);
for(int i=0;i<deep;i++)
System.out.print(" ");
System.out.println(root.getData());
RorGetTree(root.getLeft(),deep+1);
}
}
class TreeModels{//建立一個樹模型
private TreeModels left;
private TreeModels right;
private int data;
public TreeModels(TreeModels left,TreeModels right,int data){
this.left=left;
this.right=right;
this.data=data;
}
public void setLeft(TreeModels left){
this.left=left;
}
public void setRight(TreeModels right){
this.right=right;
}
public void setLeft(int data){
this.data=data;
}
public TreeModels getLeft(){
return left;
}
public TreeModels getRight(){
return right;
}
public int getData(){
return data;
}
}
下面是運作結果: