2012-01-16 76 views
0

如何在java中表示如下所示的树结构?Java树字符串数据结构

"root" 
    | | 
"leaf1" "leaf2" 
     | | 
    "leaf3" "leaf4" 
     | 
    "leaf5" 

是否有任何内置的或定制的类,任何人都可以引用我?

编辑:我需要能够轻松遍历节点。

+0

这里,对于初学者:http://stackoverflow.com/questions/3522454/java-tree-data-structure – 2012-01-16 04:03:13

+0

如何使用,没有摆动? – user908683 2012-01-16 04:09:13

+0

有一个非常好的例子来自'javax.swing'答案,它基本上扩展了Adrian的回答(尽管我会说,Stephen C的答案有一些很好的背景)。 – 2012-01-16 04:25:33

回答

3

Java类库或Guava或Apache Commons Collections中没有通用树类型。

最简单的解决方案是自己实现树型,以完成您所需的操作。树的核心功能是微不足道的... ...模具的细节很大程度上取决于树需要包含的内容以及您的用例需要如何表现。

(如果您想了解为什么没有通用的乔木型,尽量避开讨论你的头在这个番石榴问题 - http://code.google.com/p/guava-libraries/issues/detail?id=174

0

只是让你自己的Node类:

Node { 
T value; 
Node left; 
Node right; 
} 

对于更为复杂的执行看到Java的N叉树DefaultMutableTreeNode

1

试试这个[非常一般,虽然]:

public class Tree { 
private Node root; 

public Tree(String rootData) { 
    root = new Node(); 
    root.data = rootData; 
    root.children = new ArrayList<Node>(); 
} 

private class Node { 
    private String data; 
    private Node parent; 
    private List<Node> children; 
} 
}