7 9 列出所有祖先結點 30分

2021-10-12 16:33:26 字數 1181 閱讀 4311

對於給定的二叉樹,本題要求你按從上到下順序輸出指定結點的所有祖先結點。

輸入格式:

首先第一行給出乙個正整數 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 個空格分隔。在一行中按規定順序輸出葉節...