首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

C++ 抽象類實作 Queue 與 Stack:指標操作語法逐行解析

     編輯:程式設計綜合問答

程式碼展示以抽象類 list 定義介面,queue (FIFO) 與 stack (LIFO) 分別實作 store/retrieve。關鍵指標操作解析:

Queue::store

list* item = new queue;      // 配置新節點
item->num = i;               // 存資料
if (tail) tail->next = item; // 非空:舊尾巴指向新節點
tail = item;                 // 更新尾巴
item->next = NULL;           // 新節點 next 設空
if (!head) head = tail;      // 首節點:頭尾同指

Queue::retrieve

int i = head->num;           // 取頭資料
list* p = head;              // 暫存舊頭
head = head->next;           // 頭指標後移
delete p;                    // 釋放舊節點
return i;

Stack::store (頭插法)

item->next = head;  // 新節點指向舊頭
head = item;        // 更新頭
if (!tail) tail = head;

關鍵觀念

  • head/tail 是**成員指標**,屬於各自物件實例。
  • item->next = NULL 只是將節點的 next 指標設為空值,非語法錯誤。
  • 多型呼叫:list* p = &q_ob; p->store(1); 透過虛函數表動態分派至 queue::store。

程式碼邏輯正確,若編譯報錯請檢查 #include、命名空間與編譯器版本 (建議 C++11 以上)。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved