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

时间:2016-05-27 02:13:44

标签: algorithm data-structures graph

我有一个看起来像这样的网络/树。

enter image description here

我使用二叉树来表示此模型。但是,手动分配节点的rightleft参数对于级别>来说变得很麻烦。 4.

是否有一种方法可用于以编程方式执行上述任务

1 个答案:

答案 0 :(得分:4)

您可以首先创建一个节点的2D数组,其中行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