以编程方式将节点分配到分层树/网络

3

我有一个类似这样的网络/树结构。

enter image description here

我已经使用二叉树来表示这个模型。但是,对于层数>4的节点手动分配rightleft参数变得麻烦。
有没有一种方法可以通过程序自动进行上述分配?
1个回答

4

您可以首先创建一个节点的二维数组,其中行 i 对应于您纸上的层级 i,列 j 对应于该层级中的第 j 个节点:

for i = 1 to n:
   for j = 1 to i:
      A[i][j] = new Node()

然后,节点之间的关系是,A[i][j] 节点的左子节点为 A[i+1][j],右子节点为 A[i+1][j+1]

for i = 1 to n-1:
   for j = 1 to i:
      A[i][j].left = A[i+1][j]
      A[i][j].right = A[i+1][j+1]

for j = 1 to n:
   A[n][j].left = null
   A[n][j].right = null

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接