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 #include5using
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...