•方法1:陣列,稱為「父親表示法」。
constint m = 10; //樹的結點數
struct node
int data, parent; //資料域,指標域
node tree[m];
例如:tree[2]=1;//表示節點2的父親節點為1
優缺點:利用了樹中除根結點外每個結點都有唯一的父結點這個性質。很容易找到樹根,但找孩子時需要遍歷整個線性表。
【問題描述】
給定一棵樹,輸出樹的根root,孩子最多的結點max以及他的孩子
【輸入格式】
第一行:n(結點數<=100),m(邊數<=200)。
以下m行;每行兩個結點x和y,
表示y是x的孩子(x,y<=1000)。
【輸出格式】
第一行:樹根:root。
第二行:孩子最多的結點max。
第三行:max的孩子。
【輸入樣例】
8 74 1
4 21 3
1 52 6
2 72 8
【輸出樣例】
for(i=1;i<=n;i++)//找出樹根
}for(i=1;i<=n;i++)//找孩子最多的節點maxroot
if(sum>max)
} cout<
找樹根和孩子
給定一棵樹,輸出樹的根root,孩子最多的結點max以及他的孩子 輸入的第一行為t,表示測試資料的組數。對於每組測試資料的第一行 n 結點數 100 m 邊數 200 以下m行 每行兩個結點x和y,表示y是x的孩子 x,y 1000 對於每組測試資料 第一行 樹根 root。第二行 孩子最多的結點m...
找樹根和孩子
題目描述 給定一棵樹,輸出樹的根 root,孩子最多的結點 max 以及他的孩子。輸入 第一行 n 結點個數 100 m 邊數 200 以下 m 行 每行兩個結點 x 和 y,表示 y 是 x 的孩子 x,y 1000 輸出 第一行 樹根 root 第二行 孩子最多的結點 max 第三行 max 的...
樹 找樹根和孩子
題目描述 給定一棵樹,輸出樹的根root,孩子最多的結點max以及他的孩子 輸入第一行 n 結點數 100 m 邊數 200 以下m行 每行兩個結點x和y,表示y是x的孩子 x,y 1000 輸出第一行 樹根 root。第二行 孩子最多的結點max。第三行 max的孩子。樣例輸入8 7 4 14 2...