WenJieWangFlyToWorld

导航

7 二叉树的操作 四种遍历

 1 package com.wwj.cn;
 2 
 3 public interface TreeInterf {
 4     void PreOrderTraverse(TreeNode treeNode);// 前序遍历 递归
 5 
 6     void InOrderTraverse(TreeNode treeNode);// 中序遍历 递归
 7 
 8     void PostOrderTraverse(TreeNode treeNode);// 后序遍历 递归
 9 
10     void LevelIterator(TreeNode treeNode);// 层序遍历
11 
12 }
13 
14 
15 
16 
17 package com.wwj.cn;
18 
19 import java.util.LinkedList;
20 
21 public class TreeOperation implements TreeInterf {
22 
23     @Override
24     public void PreOrderTraverse(TreeNode treeNode) {
25         // TODO Auto-generated method stub
26         if (treeNode == null) {
27             return;
28         }
29         System.out.println(treeNode.val);
30         PreOrderTraverse(treeNode.leftchild);
31         PreOrderTraverse(treeNode.rightchild);
32     }
33 
34     @Override
35     public void InOrderTraverse(TreeNode treeNode) {
36         if (treeNode == null) {
37             return;
38         }
39         InOrderTraverse(treeNode.leftchild);
40         System.out.println(treeNode.val);
41         InOrderTraverse(treeNode.rightchild);
42 
43     }
44 
45     @Override
46     public void PostOrderTraverse(TreeNode treeNode) {
47         if (treeNode == null) {
48             return;
49         }
50         PostOrderTraverse(treeNode.leftchild);
51 
52         PostOrderTraverse(treeNode.rightchild);
53 
54         System.out.println(treeNode.val);
55 
56     }
57 
58     @Override
59     public void LevelIterator(TreeNode treeNode) {// 利用队列
60         if (treeNode == null) {
61             return;
62         }
63         LinkedList<TreeNode> queue = new LinkedList<>();
64         TreeNode currentNode = null;
65         queue.offer(treeNode);
66         while (!queue.isEmpty()) {
67             currentNode = queue.poll();
68             System.out.println(currentNode.val);
69 
70             if (currentNode.leftchild != null) {
71                 queue.offer(currentNode.leftchild);
72             }
73 
74             if (currentNode.rightchild != null) {
75                 queue.offer(currentNode.rightchild);
76             }
77 
78         }
79 
80     }
81 
82 }

 

posted on 2017-05-26 17:16  WenjieWangFlyToWorld  阅读(111)  评论(0编辑  收藏  举报