2016-05-27 88 views
3

我有一個看起來像這樣的網絡/樹。以編程方式分配節點到分層樹/網絡

enter image description here

我已經使用二進制樹來表示這種模式。然而手動分配節點的rightleft參數成爲累贅爲水平> 4.

是否有通過我可以做上述分配的方法編程

回答

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 
相關問題