#LAISIR24. 族譜重建
族譜重建
📝 題目描述:
在一個失落的文明中,歷史學家找到了一份關於某個家族的古老卷軸。卷軸中記載的是一系列「父子關係」,但沒有標明誰是族長(根節點)。你的任務是:根據這些父子記錄構建出整棵家族族譜樹,並輸出族譜的先序遍歷結果(多叉樹)。
📥 輸入格式:
第一行為一個整數 n
(1 ≤ n ≤ 10⁴),表示父子對的總數。
接下來 n
行,每行兩個字串 parent child
,表示 child
是 parent
的子節點。
📤 輸出格式:
一行,輸出整棵族譜樹的**先序遍歷(Preorder Traversal)**結果,以空格分隔。 遍歷規則為:根 → 第一個子 → 第二個子 → ……(子節點順序以輸入順序為準)
📊 數據範圍:
- 所有名字為不超過 20 個字母的英文字母字串,保證唯一。
- 所有關係構成一棵合法的有根樹。
- 節點總數不超過 10⁴。
📘 輸入範例:
6
A B
A C
B D
B E
C F
C G
📗 輸出範例:
A B D E C F G
💡 說明:
根據關係我們可重建出如下多叉樹結構:
A
├── B
│ ├── D
│ └── E
└── C
├── F
└── G
先序遍歷依序為:A B D E C F G
Related
In following homework: