2012-01-16 204 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; 
} 
}