如何在java中表示如下所示的樹結構?Java樹字符串數據結構
"root"
| |
"leaf1" "leaf2"
| |
"leaf3" "leaf4"
|
"leaf5"
是否有任何內置的或定製的類,任何人都可以引用我?
編輯:我需要能夠輕鬆遍歷節點。
如何在java中表示如下所示的樹結構?Java樹字符串數據結構
"root"
| |
"leaf1" "leaf2"
| |
"leaf3" "leaf4"
|
"leaf5"
是否有任何內置的或定製的類,任何人都可以引用我?
編輯:我需要能夠輕鬆遍歷節點。
Java類庫或Guava或Apache Commons Collections中沒有通用樹類型。
最簡單的解決方案是自己實現樹型,以完成您所需的操作。樹的核心功能是微不足道的... ...模具的細節很大程度上取決於樹需要包含的內容以及您的用例需要如何表現。
(如果您想了解爲什麼沒有通用的喬木型,儘量避開討論你的頭在這個番石榴問題 - http://code.google.com/p/guava-libraries/issues/detail?id=174)
以下是簡單的二進制樹,這將解決你的目的。
http://www.java2s.com/Code/Java/Collections-Data-Structure/BinaryTree.htm
試試這個[非常一般,雖然]:
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;
}
}
它可能不是集合的一部分NS API,但Swing的JTree的TreeModel
肯定是一個通用的樹實現:https://docs.oracle.com/javase/7/docs/api/javax/swing/tree/TreeModel.html
這裏,對於初學者:http://stackoverflow.com/questions/3522454/java-tree-data-structure – 2012-01-16 04:03:13
如何使用,沒有擺動? – user908683 2012-01-16 04:09:13
有一個非常好的例子來自'javax.swing'答案,它基本上擴展了Adrian的回答(儘管我會說,Stephen C的答案有一些很好的背景)。 – 2012-01-16 04:25:33