模板 求父結點與結點深度

2022-05-05 22:54:09 字數 1754 閱讀 1791

a.樹之呼吸-壹之型-結點深度及父結點

time limit: 1000 ms

memory limit: 32768 k

total submit: 64 (20 users)

total accepted: 24 (18 users)

special judge: no

description

給一棵 n 個結點的樹,結點編號從 1 到 n,並指定 m 號結點為根;

請你求出每個結點的父結點,以及它的深度;

規定:根節點的深度為 1,根節點的父結點為 0。

input

輸入第一行為乙個正整數 t,表示測試資料組數;

對於每組測試資料,輸入第一行為兩個正整數 n、m,表示樹的結點數及根結點的編號;

接下來 n - 1 行給出樹的結構,每行兩個正整數 x、y,表示結點 x 與結點 y 有邊相連;

1 <= t <= 15,1 <= n <= 1e5,1 <= m <= n。

output

每組測試資料的第一行輸出「case #i:」(不含引號),表示是第 i 組測試資料;

接下來一行依次輸出從結點 1 到結點 n 的父結點編號,用空格分隔;

接下來一行依次輸出從結點 1 到結點 n 的深度,用空格分隔;

行末請不要輸出多餘空格。

sample input

25 1

1 21 3

1 44 5

3 31 2

3 1

sample output

case #1:

0 1 1 1 4

1 2 2 2 3

case #2:

3 1 0

2 3 1

author

陳鑫題意:給一棵 n 個結點的樹,結點編號從 1 到 n,並指定 m 號結點為根;

請你求出每個結點的父結點,以及它的深度;

規定:根節點的深度為 1,根節點的父結點為 0。

思路:bfs求解父結點和深度

1 #include2 #include3 #include4 #include5

using

namespace

std;

6 typedef long

long

ll;7

const

int amn=1e5+5;8

intn,m,fa[amn],deep[amn];

9 vectoreg[amn];

10 queueq;

11void bfs(int

rt)25}26

}27intmain()

37bfs(m);

38 printf("

case #%d:\n

",c);

39for(int i=1;i<=n;i++)printf("

%d%c

",fa[i],i'

':'\n');

40for(int i=1;i<=n;i++)printf("

%d%c

",deep[i],i'

':'\n');

41}42}

43/**44

題意:給一棵 n 個結點的樹,結點編號從 1 到 n,並指定 m 號結點為根;

45請你求出每個結點的父結點,以及它的深度;

46規定:根節點的深度為 1,根節點的父結點為 0。

47思路:bfs求解父結點和深度48*

*/

樹型結構資料,求某結點的所有父結點的自定義函式

create function f father dpcode varchar 9 樹型結構資料,求某結點的所有父結點的自定義函式 returns new table dpcode varchar 9 結點編碼 dpname varchar 20 結點名稱 dpcode p varchar 9 此結...

二叉樹查詢結點及父結點

6 二叉樹查詢結點及父結點 5分 編寫程式在二叉樹中查詢給定結點及父結點。二叉樹結點的資料域值不等於0的整數。輸入第1行為一組用空格間隔的整數,表示帶空指標資訊的二叉樹先根序列,其中空指標用0表示。例如1 5 8 0 0 0 6 0 0表示如下圖的二叉樹。第2行為整數m,表示查詢個數。接下來m行,每...

2021 1 18 刪除結點 求中間節點

示例 1 輸入 head 4,5,1,9 val 5 輸出 4,1,9 解釋 給定你鍊錶中值為 5 的第二個節點,那麼在呼叫了你的函式之後,該鍊錶應變為 4 1 9.要點 設定乙個額外的結點,指向head作為標記,並方便遍歷 class solution ptemp ptemp next retur...