构建一棵树的最佳方法是什么,其中输入给出格式(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
输入的一部分),因为节点可以拥有的子节点数量是不固定。
编辑:我想补充的另一件事:每个叶节点(没有子节点的节点)将被分配一些值。我需要递归(或其他方法)遍历树,以便计算每个节点的值:父节点值是其所有子节点值的总和。