您的位置:首页 > 其它

二叉树的遍历以及将二叉树倒置90°打印输入(递归)

2013-10-18 19:59 344 查看
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;
}
}

下面是运行结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  递归 遍历 二叉树
相关文章推荐