2016-05-13 79 views
-4

我寫了一棵樹,其中每個節點都有一個他的孩子的列表。所以我的問題是:我如何計算我的樹的層數?任何人都可以給我一些關於這方面的文件嗎?謝謝 :)。水平樹數

+2

你嘗試了什麼?你有一些代碼嗎? – Pierre

+0

請先發布您的代碼。 – fluter

+2

通過計算級別數量,您是指所有級別的深度,平均深度,循環時的深度或每個孩子的深度?你需要更具體的 – Bauss

回答

0

可能有不同的方法來解決這個問題。一種解決方案可能像使用計數器變量對節點進行計數並增加計數器直到葉節點到達。但是,你必須採取

1. Longest Chain 
2. Redundancy in couting 

二的護理如果每個節點有孩子的名單,然後通過這個列表出現在根節點計算節點。

一個非常合適的方法是通過名稱等級定義一個變量到結構節點

typedef struct node { 
... 
Other members 
... 
int node_level; 
} NODE; 

並創建根或任何其它節點時用1初始化。然後更新每個插入到樹中的值。

通過這樣做,您可以隨時查看任何子樹的級別。還要注意每個插入的節點都有一個等級1,其祖先的等級會更高。