码迷,mamicode.com
首页 > 编程语言 > 详细

Java学习(十三):Java二叉树递归遍历

时间:2015-04-05 23:14:13      阅读:238      评论:0      收藏:0      [点我收藏+]

标签:

  1 public class BinaryTree
  2 {
  3     public void printNode(TreeNode node)
  4     {
  5         System.out.print(node.getData());
  6     }
  7     
  8     class TreeNode
  9     {
 10         private String data;
 11         
 12         private TreeNode leftNode;
 13         
 14         private TreeNode rightNode;
 15         
 16         public TreeNode(String data, TreeNode leftNode, TreeNode rightNode)
 17         {
 18             this.data = data;
 19             this.leftNode = leftNode;
 20             this.rightNode = rightNode;
 21         }
 22         
 23         public String getData()
 24         {
 25             return data;
 26         }
 27         
 28         public void setData(String data)
 29         {
 30             this.data = data;
 31         }
 32         
 33         public TreeNode getLeftNode()
 34         {
 35             return leftNode;
 36         }
 37         
 38         public void setLeftNode(TreeNode leftNode)
 39         {
 40             this.leftNode = leftNode;
 41         }
 42         
 43         public TreeNode getRightNode()
 44         {
 45             return rightNode;
 46         }
 47         
 48         public void setRightNode(TreeNode rightNode)
 49         {
 50             this.rightNode = rightNode;
 51         }
 52     }
 53     
 54     public static void main(String[] args)
 55     {
 56         BinaryTree tree = new BinaryTree();
 57         TreeNode node = tree.init();
 58         // 先序遍历。。。。。。。
 59         System.out.println("**************************");
 60         System.out.println("先序遍历。。。。。。。");
 61         tree.xianIterator(node);
 62         System.out.println("");
 63         // 中序遍历。。。。。。。
 64         System.out.println("**************************");
 65         System.out.println("中序遍历。。。。。。。");
 66         tree.zhongIterator(node);
 67         System.out.println("");
 68         // 后续遍历。。。。。。。
 69         System.out.println("**************************");
 70         System.out.println("后序遍历。。。。。。。");
 71         tree.houIterator(node);
 72     }
 73     
 74     public TreeNode init()
 75     {
 76         TreeNode D = new TreeNode("D", null, null);
 77         TreeNode H = new TreeNode("H", null, null);
 78         TreeNode I = new TreeNode("I", null, null);
 79         TreeNode J = new TreeNode("J", null, null);
 80         TreeNode P = new TreeNode("P", null, null);
 81         TreeNode G = new TreeNode("G", P, null);
 82         TreeNode F = new TreeNode("F", null, J);
 83         TreeNode E = new TreeNode("E", H, I);
 84         TreeNode B = new TreeNode("B", D, E);
 85         TreeNode C = new TreeNode("C", F, G);
 86         TreeNode A = new TreeNode("A", B, C);
 87         return A;
 88     }
 89     
 90     public void xianIterator(TreeNode node)
 91     {
 92         this.printNode(node);
 93         if (node.getLeftNode() != null)
 94         {
 95             this.xianIterator(node.getLeftNode());
 96         }
 97         if (node.getRightNode() != null)
 98         {
 99             this.xianIterator(node.getRightNode());
100         }
101     }
102     
103     public void zhongIterator(TreeNode node)
104     {
105         if (node.getLeftNode() != null)
106         {
107             this.zhongIterator(node.getLeftNode());
108         }
109         this.printNode(node);
110         if (node.getRightNode() != null)
111         {
112             this.zhongIterator(node.getRightNode());
113         }
114     }
115     
116     public void houIterator(TreeNode node)
117     {
118         if (node.getLeftNode() != null)
119         {
120             this.houIterator(node.getLeftNode());
121         }
122         
123         if (node.getRightNode() != null)
124         {
125             this.houIterator(node.getRightNode());
126         }
127         this.printNode(node);
128     }
129 }

 

Java学习(十三):Java二叉树递归遍历

标签:

原文地址:http://www.cnblogs.com/moleme/p/4394818.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!