免費開始練習
高考申論題 112年 [電力工程] 計算機概論

第 一 題

📖 題組:
三、陣列與二元樹是撰寫程式常用的資料結構。 | 索引 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | |---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---| | 鍵值 | 18 | 10 | 21 | | 15 | | 23 | | | 13 | 17 | | | | 25 |
📝 此題為申論題,共 2 小題

小題 (一)

使用陣列(Array)結構儲存二元樹(Binary Tree)有何優點?(10分)

思路引導 VIP

本題詢問陣列表現二元樹的優點。應先想到陣列表示法的運作原理:對於索引 i 的節點,其左子節點為 2i+1,右子節點為 2i+2,父節點為 (i-1)/2。從這點出發,推導出它的優點:不需要指標(Pointer)、節省空間(若為完整或完滿二元樹)、透過公式隨機存取速度極快。若篇幅允許,可稍微提一下缺點(歪斜樹浪費空間)作為對比以顯全面。

🤖
AI 詳解
AI 專屬家教

【考點分析】 本題測驗二元樹的實作方式,比較順序性儲存結構(Array)相對於鏈結性儲存結構(Linked List / Pointers)的優勢。 【理論/法規依據】

小題 (二)

下面陣列Arr[0:14]表示一棵二元樹,陣列的元素代表該樹每個節點的鍵值,請撰寫一個演算法重建出該二元樹。該樹是否為一棵二元搜尋樹(Binary Search Tree)?(15分)

思路引導 VIP

本題需要完成兩項任務。第一:撰寫演算法。由於已經給定陣列,可以使用遞迴方式建立節點,建立根節點後,遞迴呼叫 2i+1 建左子樹,2i+2 建右子樹。可以使用 C 語言或 Pseudo-code。第二:判斷是否為 BST。首先要先畫出樹的形狀:根為18,左子為10,右子為21。10的右子為15,15的左子13,右子17。21的右子為23,23的右子為25。畫完後,檢驗是否滿足「左子樹所有節點 < 父節點 < 右子樹所有節點」的特性。也可說明若將此樹進行中序追蹤(In-order Traversal),是否產生嚴格遞增數列。判斷結果為「是」。

🤖
AI 詳解
AI 專屬家教

【考點分析】 本題測驗透過陣列索引建構鏈結串列二元樹的演算法實作能力,以及驗證二元搜尋樹(BST)定義的能力。 【理論/法規依據】

🏷️ 相關主題

資料結構
查看更多「[電力工程] 計算機概論」的主題分類考古題