高考申論題
108年
[統計] 資料處理
第 四 題
四、堆疊(Stack)和佇列(Queue)分別是用來記錄先進後出(First In Last Out)和先進先出(First In First Out)等特定的工作排程形式,但若今有一工作排程需按照已進入準備排程的最小工作編號執行(不同工作的編號不會重複),則可採用鏈結串列(Linked List)來操作。給定一個已建置好的鏈結串列資料結構,其中的每個節點(Node)含有三個欄位,第一個欄位為 JobName,存放準備執行之工作名稱,第二個欄位為 JobID,存放該工作之編號,第三個欄位為指標欄位 Next,指向鏈結的下一個節點。另有一指標 Head,指向鏈結串列的第一個節點,而最後一個節點的指標欄位 Next,指向 NULL 代表串列的結束。請寫出虛擬程式碼(Pseudo Code),讀取鏈結串列中具有最小編號的工作名稱,並將該存放節點從鏈結串列中刪除並釋放被刪除節點所占用的記憶體空間。虛擬程式碼需附帶適當的註解,說明操作的程序及理由。(25 分)
📝 此題為申論題
思路引導 VIP
本題是「資料結構」的演算法實作題。核心任務是:在 Linked List 中找出 JobID 最小的節點,並將其刪除(必須處理指標重整與記憶體釋放)。
- 搜尋階段:需要遍歷整個串列,紀錄目前的
minID,以及指向該節點的指標minNode。因為是單向鏈結串列,刪除節點需要知道它的「前一個節點」,所以必須額外紀錄minPrev。
🤖
AI 詳解
AI 專屬家教
【考點分析】 單向鏈結串列(Singly Linked List)的遍歷(Traversal)、極值尋找以及節點刪除演算法。 【理論/法規依據】
▼ 還有更多解析內容