對於給定的二叉樹,本題要求你按從上到下順序輸出指定結點的所有祖先結點。
輸入格式:
首先第一行給出乙個正整數 n(≤10),為樹中結點總數。樹中的結點從 0 到 n−1 編號。
隨後 n 行,每行給出乙個對應結點左右孩子的編號。如果某個孩子不存在,則在對應位置給出 「-」。編號間以 1 個空格分隔。
最後一行給出乙個結點的編號i(0≤i≤n-1)。
輸出格式:
在一行中按規定順序輸出i的所有祖先結點的編號。編號間以 1 個空格分隔,行首尾不得有多餘空格。
輸入樣例:
72-
-6--
05--
41--
4
輸出樣例:
3
5
這道題不難,並查集思想吧,一直找祖先,增設parent域即可。一直25分,最小n那個測試點過不去,我以為如果要查詢的是根結點(只有乙個結點的情況),輸出0或者』-』,結果是直接return 0就行了
#include
#include
using
namespace std;
typedef
struct
node;
intmain()
; node node[n]
;for
(int i =
0; i < n; i++
)else
if(right !=
'-')
else
}int root;
for(
int i =
0; i < n; i++)}
int index;
cin >> index;
if(n ==1)
vector<
int> v;
while
(node[index]
.parent !=-1
)for
(int i = v.
size()
-1; i >=
0; i--
)return0;
}
PTA 列出所有祖先結點
對於給定的二叉樹,本題要求你按從上到下順序輸出指定結點的所有祖先結點。輸入格式 首先第一行給出乙個正整數 n 10 為樹中結點總數。樹中的結點從 0 到 n 1 編號。隨後 n 行,每行給出乙個對應結點左右孩子的編號。如果某個孩子不存在,則在對應位置給出 編號間以 1 個空格分隔。最後一行給出乙個結...
7 7 列出葉結點 (25 分)
對於給定的二叉樹,本題要求你按從上到下 從左到右的順序輸出其所有葉節點。首先第一行給出乙個正整數 n 10 為樹中結點總數。樹中的結點從 0 到 n 1 編號。隨後 n 行,每行給出乙個對應結點左右孩子的編號。如果某個孩子不存在,則在對應位置給出 編號間以 1 個空格分隔。在一行中按規定順序輸出葉節...
7 14 列出葉結點 25 分
對於給定的二叉樹,本題要求你按從上到下 從左到右的順序輸出其所有葉節點。首先第一行給出乙個正整數 n 10 為樹中結點總數。樹中的結點從 0 到 n 1 編號。隨後 n 行,每行給出乙個對應結點左右孩子的編號。如果某個孩子不存在,則在對應位置給出 編號間以 1 個空格分隔。在一行中按規定順序輸出葉節...