地特四等申論題
114年
[資訊處理] 程式設計概要
第 五 題
五、單鏈結串列(Singly Linked List)特點是鏈結串列的連結方向為單向,對單鏈結串列的訪問要通過從頭部開始,依序往下讀取,每個節點(node)
包含兩部分:存儲數據的資料(data)和指向下一個節點的指標(pointer),
節點定義如下:
struct Node{
int data;
struct Node *next;
}
單鏈結串列中的所有節點通過指標串聯,最後一個節點的指標指向空值
(null),表示單鏈結串列結尾。請使用 Java 或 C++實作一完整程式,通過從頭部(head)開始,依序往下讀取,訪問一單鏈結串列操作,輸出單鏈結串列中節點個數,若單鏈結串列中不存在任何節點,為一個空鏈結串列,則輸出-1。(20 分)
包含兩部分:存儲數據的資料(data)和指向下一個節點的指標(pointer),
節點定義如下:
struct Node{
int data;
struct Node *next;
}
單鏈結串列中的所有節點通過指標串聯,最後一個節點的指標指向空值
(null),表示單鏈結串列結尾。請使用 Java 或 C++實作一完整程式,通過從頭部(head)開始,依序往下讀取,訪問一單鏈結串列操作,輸出單鏈結串列中節點個數,若單鏈結串列中不存在任何節點,為一個空鏈結串列,則輸出-1。(20 分)
📝 此題為申論題
思路引導 VIP
這是一道基本的資料結構實作題。解題目標在於「計算單鏈結串列的節點總數,且要處理空串列的特殊情況」。思考順序如下:(1) 撰寫一個函式接收串列的頭指標(head)。(2) 依題意,若是空串列(head 為 NULL),不是輸出 0,而是要輸出 -1,這個特殊判斷必須獨立或置於首要邏輯處理。(3) 若非空,設定一個計數器 count = 0,以及一個目前指標 curr = head。(4) 用 while(curr != NULL) 迴圈走訪,每次迭代將 count 加 1,並把 curr 推進到 curr->next。(5) 迴圈結束後輸出 count。(6) 按照題目要求包裝成完整的 C++ 或 Java 程式碼(包含 main 等架構測試)。
🤖
AI 詳解
AI 專屬家教
【考點分析】 考察單向鏈結串列(Singly Linked List)的基礎指標操作與走訪(Traversal),以及針對邊界條件(空鏈結串列)的例外判斷能力。 【理論/法規依據】
▼ 還有更多解析內容