樹是一種由節點組成的數據結構,每個節點都包含數據元素,并且有一個或多個子節點,每個子節點指向一個父節點(譯者注:除了根節點)可以表示層級關系或者數據元素的順序關系。常用的場景有表示一個組織里的雇員層級關系,XML元素的層級關系,等等。如果樹的每個子節點最多有兩個葉子節點,那么這種樹被稱為二叉樹。二叉樹是一種非常常用的樹形結構, 因為它的這種結構使得節點的插入和刪除都非常高效。樹的邊表示從一個節點到另外一個節點的快捷路徑。
Java里面沒有直接提供樹的實現,但是它很容易通過下面的方式來實現。只需要創建一個Node對象,里面包含一個指向葉子節點的ArrayList。
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
|
package bigo; import java.util.ArrayList; import java.util.List; public class Node { private String name; private List<node> children = new ArrayList<node>( ); private Node parent; public Node getParent( ) { return parent; } public void setParent(Node parent) { this .parent = parent; } public Node(String name) { this .name = name; } public void addChild(Node child) { children.add(child); } public void removeChild(Node child) { children.remove(child); } public String toString( ) { return name; } } |
原文轉自:http://www.importnew.com/871.html