简单的递归遍历树

对于树的递归,不,应该说对于递归,我一直都不是特别的懂,一直处于混沌状态。对于树的遍历,当初学数据结构的时候,自己能按照规则遍历出来,但是用程序当时根本就不明白。其实递归已经在很对地方讲到了,可我就是不明白,估计这是我的一个要害。

还在看算法,Java实现树的递归遍历,不错不错,稍稍修改了,保存起来,虽然是一个很简单的程序,但�歉业钠舴⒑艽螅匾乃枷氩皇锹穑�

树是如附件所示的那个样子。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
package alg;
 
public class TraverTree {
	static class Item{
		int text;
		Item(int i){
          this.text=i;			
		}
		private void visit(){
			System.out.print(this.text+",");
		}
	}//class Item
	static class Node{
		Item item;
		Node right;
		Node left;
		Node(Item item,Node l,Node r){
			this.item=item;
			this.right=r;
			this.left=l;
		}		
	}//class Node
    private static void traverM(Node n){
    	if(n==null)return;    	
    	traverM(n.left);
    	n.item.visit();
    	traverM(n.right);
    }//中序遍历
    private static void traverF(Node n){
    	if(n==null)return;
    	n.item.visit();
    	traverF(n.left);
    	traverF(n.right);
    }//先序遍历
    private static void traverL(Node n){
    	if(n==null)return;    	
    	traverL(n.left);
    	traverL(n.right);
    	n.item.visit();
    }//后序遍历  
 
	public static void main(String[] args) {
		Node root=createTree();
		System.out.print("中序遍历的结果是:");
		traverM(root);
 
		System.out.println();
		System.out.print("先序遍历的结果是:");
		traverF(root);
		
		System.out.println();
		System.out.print("后序遍历的结果是:");
		traverL(root);
	}
	public static Node createTree(){
		//生成叶子节点
		Item item=new Item(6);
		Node leaf_1=new Node(item,null,null);
		
		item=new Item(7);
		Node leaf_2=new Node(item,null,null);
		
		item=new Item(10);
		Node leaf_3=new Node(item,null,null);
		
		item=new Item(12);
		Node leaf_4=new Node(item,null,null);
		
		item=new Item(5);
		leaf_1=new Node(item,leaf_1,leaf_2);
		
		item=new Item(8);
		leaf_2=new Node(item,leaf_3,leaf_4);
		
		item=new Item(1);
		Node root=new Node(item,leaf_1,leaf_2);
		
		return root;	//返回根节点	
	}
 
}
 



posted @ 2009-03-08 22:07  彼岸Elan  阅读(5667)  评论(0编辑  收藏  举报