如何在 Java 中实现树形数据结构?

新手上路,请多包涵

是否有任何标准的 Java 库类来表示 Java 中的树?

具体来说,我需要表示以下内容:

  • 任何节点的子树都可以有任意数量的孩子
  • 每个节点(根节点之后)及其子节点都将具有字符串值
  • 我需要获取给定节点的所有子节点(某种列表或字符串数组)及其字符串值(即一种将节点作为输入并将子节点的所有字符串值作为输出返回的方法)

是否有任何可用的结构,或者我需要创建自己的结构(如果有的话,实施建议会很棒)。

原文由 ikl 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 614
1 个回答

这里:

 public class Tree<T> {
    private Node<T> root;

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

    public static class Node<T> {
        private T data;
        private Node<T> parent;
        private List<Node<T>> children;
    }
}

这是一个基本的树结构,可用于 String 或任何其他对象。实现简单的树来做你需要的事情是相当容易的。

您需要添加的只是用于添加、删除、遍历和构造函数的方法。 NodeTree 的基本构建块。

原文由 jjnguy 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题