LONGEPASS
Q96.

利用環狀鏈結串列(Circular Linked List)來實作一個佇列(Queue),且該串列有一個後端指標(rearPtr)指向佇列之最後一個元素,若佇列之每一個節點結構如下,下列敘述中何者可以正確地取得佇列中的第一個元素資料 (假設在一個成員函式(Member Function)中,Private Member 的存取是合法的)?電腦軟體設計共同科目 乙級 第 96 題 題目 圖片

電腦軟體設計共同科目 · 乙級 · Q96

難易度分析

3 / 5

本題要求考生理解環狀鏈結串列的結構特性,需能區分指向首個節點的指標與該節點內儲存的資料值,並能辨識出在單指標實作環境中,如何透過尾端指標推導出前端元素的存取路徑。

正確答案:④element=rearPtr->next->item

④ element=rearPtr->next->item:在環狀鏈結串列中,rearPtr->next 會繞回指向第一個節點(front),再透過 ->item 即可取得該節點儲存的資料值,此為正確取得佇列前端元素的標準寫法。

錯誤選項解析

  • ① element=rearPtr->item:rearPtr->item 取得的是佇列最後一個元素的資料,而非第一個元素。在環狀鏈結串列中,rearPtr 直接指向尾節點,其 item 欄位儲存的是尾節點的值。
  • ② element=rearPtr->next->frontPtr->next:frontPtr 並非此題節點結構的成員,題目僅定義單一 rearPtr 指標。此寫法混淆了雙指標實作與單指標環狀實作的差異,屬於無效的記憶體存取。
  • ③ element=rearPtr->next:rearPtr->next 回傳的是指向第一個節點的指標(Node*),而非節點內儲存的資料值。要取得元素內容必須進一步存取該節點的 item 欄位。
Learning Tip

"此題核心考點為環狀鏈結串列實作佇列的指標操作。關鍵在於理解:僅使用單一 rearPtr 時,rearPtr->next 即為 front(因環狀特性),故取得前端資料需寫成 rearPtr->next->item。常考陷阱為混淆「節點指標」與「節點資料」的差異,以及誤用不存在的 frontPtr 成員。實務上,此設計可節省一個指標的空間,是資料結構考試的經典題型。"

學員答題分佈

①element=rearPtr->item0%
②element=rearPtr->next->frontPtr->next0%
③element=rearPtr->next0%
④element=rearPtr->next->item0%

此答題分佈是根據學員在 LongePass 模擬考等實際作答紀錄計算而成。與考友分享這道歷屆試題與詳細解析!

相似類型題目