最常见的Java常见面试题问答(2)

发表于:2013-01-24来源:ImportNew作者:不详点击数: 标签:java
树是一种由节点组成的数据结构,每个节点都包含数据元素,并且有一个或多个子节点,每个子节点指向一个父节点(译者注:除了根节点)可以表示层级关

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