java - Java 中的 k 叉树

标签 java tree

我在我的 Java 应用程序中有一个非 UI 使用的所谓的“k-ary”树,我想知道 javax.swing.tree 包是否是完成这项工作的正确工具,即使它与 Swing 打包在一起.

我有一类 Widget 对象需要组织成一棵树。这个Widget树的每个节点可以有0+个子节点,因此它不一定是对称的。

我需要一个允许我使用小部件或任何其他对象的通用树/节点结构。具体来说,我需要一个(至少)执行后序遍历的遍历。

如果我没有在寻找正确的包裹,有人可以为我指明正确的方向吗?

最佳答案

虽然你可以欺骗那个类来做你想做的事,但我觉得它与 JTree 的耦合要紧密得多。比你想要的。 Google 的普遍共识是,构建您自己的是一个快速的练习,而且返回丰厚 - 我能够在前几个结果中找到两种不同的实现。

如果你有一些迫切需要自己动手,一般的想法是用 List<Node> 定义一个 Node 类。 child 的。然后你所要做的就是为 insert 之类的事情提供你自己的方法。 , delete等。递归后序遍历与执行常规二进制后序一样简单,只是您只需遍历子项列表而不是左-右-根,对每个子项执行后序,然后最后迭代根。

关于java - Java 中的 k 叉树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5176233/

相关文章:

java - 在 Java 中使用命名 JSON 对象

java - Spring webflow URI 映射到包含斜杠 ("/"的流 ID

d3.js - 避免 d3.js 中树形布局中的节点重叠

c# - 如何显示变量的公式

c++ - 将指向数组的指针元素推送到 C++ 中的 std::list

algorithm - 如何在具有重复节点值的 n 叉树中找到最短路径?

MySQL修改前序树遍历——根据节点获取子树

java - 找到一个非常大的数字

java - 包 org.hibernate 可以从多个模块访问 : hibernate. commons.annotations, hibernate.core

java - 数组大小与java无关吗?