什么是最好的方式来建立一个树的输入给出格式(a,b)
,a
是父节点和b
是儿童节点? (节点1根) 例如:如何创建一个树,找到正确的节点来添加子节点?
1 2 //adds node #2 as the children of #1 (the root)
1 3 //adds node #3 as the second children of the root
2 4 //adds node #4 as the children of node #2
etc...
我了解如何使这种树的,如果它像一个二叉树(自左子是较小值,右孩子是的对于给定的父节点来说更大)。但是,父亲可以拥有的子节点的数量对于我的树来说不是固定的。我怎样才能有效地创造这个?我无法理解算法如何迭代并找到正确的节点(输入的a
部分),以便它可以将另一个节点添加为子节点(输入的b
部分),因为节点可以使用的子节点数量有没有固定。
编辑:我想补充的另一件事:每个叶子节点(没有子节点的)将被分配一些值。我需要递归(或其他方法)遍历树,以便可以计算每个节点的值:父节点值是其所有子节点值的总和。
问题可能更适合程序员.stackexchange.com。另请参阅http://meta.stackexchange.com/questions/82988/choosing-between-stack-overflow-and-programmers-stack-exchange – grasbueschel
你能否防止类似情况发生? 1 2,2 1;基本上是父 - >子,孩子 - >父母的循环。 – Justin