Stack 核心特性
- 後進先出(LIFO)資料結構
- 僅支援堆疊頂插入(
push)、頂部刪除(pop)、頂部存取(top)
- 不支援迭代器,無法隨機存取或遍歷
- 底層預設以
deque 實現
- 遞迴演算法、表達式求值、語法解析等核心支撐結構
基本操作完整示例
#include
#include
using namespace std;
int main() {
// (1) 建立 stack
stack s1; // 空堆疊
stack s2(s1); // 複製建構
// (2) push():入堆疊
s1.push(2);
s1.push(4);
s1.push(6);
// (3) top():存取堆疊頂元素(僅讀取,不移除)
cout << "頂部元素:" << s1.top() << endl; // 6
// (4) pop():出堆疊(移除頂部元素,無返回值)
s1.pop(); // 移除 6
// (5) empty():判空
cout << "是否為空:" << s1.empty() << endl; // 0 (false)
// (6) size():元素個數
cout << "堆疊大小:" << s1.size() << endl; // 2
return 0;
}
關鍵提醒
pop() 不返回被移除元素,需先呼叫 top() 取值再 pop()。
- Stack 作為最基礎資料結構,是許多演算法(如遞迴模擬、括號匹配、中序轉後序)的基石,務必熟練掌握。