1. 程式人生 > 其它 >P1827 【[USACO3.4]美國血統 American Heritage】 題解

P1827 【[USACO3.4]美國血統 American Heritage】 題解

原題連結: P1827 【美國血統 American Heritage】

題意簡述: 輸入一棵二叉樹的先序遍歷和中序遍歷序列,輸出後序遍歷序列。

前置知識: 二叉樹遍歷

定義: 所謂遍歷(\(Traversal\))是指沿著某條搜尋路線,依次對樹中每個結點均做一次且僅做一次訪問。訪問結點所做的操作依賴於具體的應用問題。 遍歷是二叉樹上最重要的運算之一,是二叉樹上進行其它運算之基礎。

實現:

前序遍歷(\(Preorder Traversal)\) 中序遍歷(\(Inorder Traversal\)) 後序遍歷(Postorder Traversal)
\(step\) 1. 訪問根結點 遍歷左子樹 遍歷左子樹
\(step\) 2. 遍歷左子樹 訪問根結點 遍歷右子樹
\(step\) 3. 遍歷右子樹 遍歷右子樹 訪問根結點

思路:邊建樹(遞迴)邊輸出。後序序列輸出時應該將輸出放在兩個遞迴函式後面,不難。不過還有些細節還是需要注意,比如傳參的時候左右子樹分別在先序和中序的位置需要注意。

\(end\)