树是一种由节点组成的数据结构,每个节点都包含数据元素,并且有一个或多个子节点,每个子节点指向一个父节点(译者注:除了根节点)可以表示层级关系或者数据元素的顺序关系。常用的场景有表示一个组织里的雇员层级关系,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