如何在java?
中表示如下所示的树结构 "root"
| |
"leaf1" "leaf2"
| |
"leaf3" "leaf4"
|
"leaf5"
是否有任何内容或自定义类可供我参考?
编辑:我需要能够轻松遍历节点。
答案 0 :(得分:3)
Java类库或Guava或Apache Commons Collections中没有通用树类型。
最简单的解决方案是自己实现树类型,以完全满足您的需求。树的核心功能是微不足道的......模块化的细节很大程度上取决于树需要包含的内容以及用例需要它如何表现。
(如果您想了解为什么没有通用树类型,请尝试围绕此番石榴问题进行讨论 - http://code.google.com/p/guava-libraries/issues/detail?id=174)
答案 1 :(得分:1)
以下是简单的二叉树,可以解决您的目的。
http://www.java2s.com/Code/Java/Collections-Data-Structure/BinaryTree.htm
答案 2 :(得分: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;
}
}
答案 3 :(得分:1)
它可能不是Collections API的一部分,但Swing的JTree TreeModel
肯定是一个通用的树实现:https://docs.oracle.com/javase/7/docs/api/javax/swing/tree/TreeModel.html
答案 4 :(得分:0)
只需创建自己的Node类:
Node {
T value;
Node left;
Node right;
}
对于更复杂的实现,请参阅Java的N-ary树DefaultMutableTreeNode