在java中,我如何表示像下面这样的树形结构?
"root"
| |
"leaf1" "leaf2"
| |
"leaf3" "leaf4"
|
"leaf5"有没有任何人可以向我推荐的内置或自定义类?
编辑:我需要能够轻松地遍历节点。
发布于 2012-01-16 12:14:28
Java类库、Guava或Apache Commons Collections中都没有泛型树类型。
最简单的解决方案是自己实现树类型,以准确地执行所需的操作。树的核心功能是微不足道的。modulo,细节在很大程度上取决于树需要包含的内容以及用例要求它如何行为。
(如果您想了解为什么没有泛型树类型,请尝试了解有关此Guava问题的讨论- http://code.google.com/p/guava-libraries/issues/detail?id=174)
发布于 2012-01-16 12:17:59
下面是简单的二叉树,可以解决你的问题。
http://www.java2s.com/Code/Java/Collections-Data-Structure/BinaryTree.htm
发布于 2012-05-18 12:25:08
不过,试试这个非常通用的方法:
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;
}
}https://stackoverflow.com/questions/8875645
复制相似问题