【发布时间】:2016-02-21 08:46:57
【问题描述】:
我正在实现基于this 答案的树。根据给定的简单使用示例,新节点以它们在树中的位置命名,因此它们是变量。 例如:
TreeNode<String> node0 = root.addChild("node0");
其中 node0 是一个新的 TreeNode 和新子节点将拥有的 data。
我打算为我的树的每个节点创建 26 个子节点。我的问题很简单,我是否必须通过手动创建树将具有的所有 26 个可能节点来创建树,如下所示?
TreeNode<String> node0 = root.addChild("node0");
TreeNode<String> node1 = root.addChild("node1");
TreeNode<String> node2 = root.addChild("node2");
...
TreeNode<String> node25 = root.addChild("node25");
{
TreeNode<String> node00 = node0.addChild("node00");
...
{
//the above code for all the nodes of the tree
}
}
还是我错过了更好的解决方案?谢谢
【问题讨论】:
-
为什么不循环添加 26 个孩子呢?
for (int id = 0; id < 26; ++id) { root.addChild("node" + id); } -
@Turing85 这将适用于 root 但 node0 例如呢?我不能使用 node+"0" 变量来做 node0.addChild(...)。
-
您总是可以在循环中嵌套另一个循环。如果您想将构造深度作为参数传递,则可以使用递归。
-
@Turing85 我认为你没有抓住重点,我可以使用循环来添加节点,但我无法命名父节点。请看一下我包含的参考资料。如果我错过了这一点,您可以向我解释如何构造 node0.addChild 字段中的 node0(父名称)。
-
如果您希望变量名 (
nodeXY) 从String动态构造,那么答案是:不,这是不可能的。但是为什么不使用某种集合来管理您的节点(即数组或Lists)?
标签: java data-structures tree