二叉树的遍历以及将二叉树倒置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; } }
下面是运行结果:
相关文章推荐
- 实现二叉树的先序遍历、中序遍历、后序遍历的递归非递归算法以及层次遍历算法
- 二叉树的建立以及先序中序后序递归遍历
- 二叉树的递归创建,以及二叉查找树查找的建立 和遍历查找的比较
- 输入前序/后序+中序 遍历结果重建二叉树(递归)
- 二叉树各种遍历算法(递归以及非递归)6
- 二叉树的创建,先序、中序、后序遍历的递归实现以及层序遍历
- 二叉树的存储方式以及递归和非递归的三种遍历方式
- 二叉树先序后序递归建立,前中后序层次非递归遍历,以及统计叶子结点个数以及树的深度
- 【leetcode Java】二叉树的递归遍历以及最大深度的求解(Java)
- 二叉树创建、前序遍历、中序遍历、后序遍历 的 递归与非递归实现 以及 层次遍历
- 二叉树的存储方式以及递归和非递归的三种遍历方式
- 二叉树的基本结构以及建树、遍历(递归、非递归)
- 二叉树三种遍历(递归以及非递归实现)
- 二叉树先序、中序、后续遍历递归以及非递归java实现
- 二叉树的存储方式以及递归和非递归的三种遍历方式
- C++二叉树之构造拷贝赋值,递归和非递归的前序遍历,中序遍历和后序遍历,以及层序遍历
- 二叉树建立以及递归、非递归遍历
- 二叉树的前序,中序,后序的递归与非递归遍历以及按层遍历
- 二叉树创建以及遍历(递归和非递归方式)
- 关于二叉树的若干代码, 非递归遍历,打印..