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

我用二叉树来表示这个模型。但是,当级别> 4时,手动分配节点的right和left参数变得很麻烦。
有什么方法可以让我以编程的方式完成上面的任务吗?
发布于 2016-05-27 02:42:07
首先,您可以创建一个2D节点数组,其中行i对应于纸张上的级别i,列j对应于该级别的j-th节点:
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 = nullhttps://stackoverflow.com/questions/37473745
复制相似问题