免費開始練習
地特三等申論題 109年 [資訊處理] 程式設計

第 三 題

請使用 Java、C、C++、C#或 Python 撰寫相關程式模組,使用stack(先進後出的線性資料結構)來完成 preorder 的深度優先(Depth First Search)樹狀圖追蹤(traversal)。(25分) 註:假設樹狀圖的節點資料可以為任意型別 註:假設樹狀圖的節點結構內含三個全域變數:資料、父節點、所有子節點串接的 linked list *模組程式應能接受樹狀圖的樹根 *模組程式應以字串數列方式,回傳樹狀圖追蹤的結果(以空白、逗號或換行符號區隔資料字串) *樹狀圖中的節點需另以獨立的 class 定義節點資料、相關的建構子(Constructor)與存取子(Accessor/Mutator)
📝 此題為申論題

思路引導 VIP

看到此題,首先應想到以泛型(Generics)實作節點類別以支援任意型別,並宣告資料、父節點與 LinkedList 類型的子節點結構。其次,在實作反覆式(Iterative)的前序 DFS 時,由於 Stack 具備「先進後出(LIFO)」特性,為確保子節點能由左至右被拜訪,需將子節點以「由右至左」的順序壓入 Stack 中。

🤖
AI 詳解 AI 專屬家教

選用程式語言:Java 【解題關鍵】 利用 Java 的泛型 <T> 設計彈性型別節點,並運用 java.util.Stack 實作非遞迴(Iterative)的 DFS,關鍵在於將子節點「反向」壓入 Stack。

▼ 還有更多解析內容

📝 同份考卷的其他題目

查看 109年[資訊處理] 程式設計 全題

升級 VIP 解鎖