由樹節點的父子關係計算樹的深度 據說是小公尺筆試題

2021-08-28 10:18:16 字數 802 閱讀 5671

現在有一棵合法的二叉樹,樹的節點都是用數字表示,現在給定這棵樹上所有的父子關係,求這棵樹的高度

輸入的第一行表示節點的個數n(1 ≤ n ≤ 1000,節點的編號為0到n-1)組成,

下面是n-1行,每行有兩個整數,第乙個數表示父節點的編號,第二個數表示子節點的編號

輸出樹的高度,為乙個整數
示例1

5

0 10 2

1 31 4

3
/*父節點的深度加一就是子節點的深度,從0開始一次往下遍歷*/

/*0的深度為1,一次以此為基礎向下遍歷,則可得到最終深度 */

#include#include#includeusing namespace std;

int main()

;//這兩行陣列大小固定為1000是因為用例的節點編號並不是連續的,0`999的編號都有可能出現

int cnt[1000]=;

vector> v(n-1,vector(2));

for(int i=0;i>v[i][0];

cin>>v[i][1];

}sort(v.begin(),v.end());

for(int i=0;iheight)

height=result[v[i][1]];

++cnt[v[i][0]];//根據父節點的子節點個數}}

cout<}

return 0;

}

oracle處理節點之間的父子關係

通常當與樹的結構之間的關係處理,這是乙個很複雜的事情,我們可以通過程式 去逐層遍歷父或子節點,這樣做的缺點是很明顯,效率不高,操作複雜性是比較大的。而當我們使用oracle當資料庫,我們可以有乙個簡單的解決方法,例如下列 1.首先建立一張表。儲存父子關係 drop table tmp node cr...

父子關係的設計方式

例子1 頂層父類id 12345 二級id及父id 6,1 7,1 8,2 這是兩個屬性,乙個id,乙個pid id及父類id 9,6 10,6 11,7 這個是兩個屬性,乙個id,乙個pid 四級.例子2 頂層父類id 12345 二級id及父id 6 1 7 1 8 2 這是兩個屬性,乙個id,...

物件的父子關係API

parent 獲取父物件 setparent 設定父物件 chirldren 獲取子物件 包含多個 findchild 查詢子物件,若有多個子物件符合查詢條件,找到第乙個符合條件的子物件就返回,即即使有多個子物件符合,但只返回乙個子物件 findchildren 查詢子物件,若有多個子物件符合查詢條...