開啟章節選單
基本堆疊
常見概念
堆疊 (Stack) 是一種具有後進先出 (Last In First Out, LIFO) 特性的資料結構,就像是一疊盤子,只能在最上面放盤子或是拿走盤子。
堆疊有兩個基本操作:
Push - 將元素放入堆疊的最上面。
Pop - 從堆疊的最上面取出元素。
注意堆疊只能在最上面進行 Push 和 Pop 操作,不支援在中間插入或刪除元素。
實作方式
在 C++ 中,堆疊可以使用傳統的陣列來實作,這裡提供一個簡單的範例:
int stack[1000]; // 假設堆疊最多放 1000 個元素 int top = 0; // 堆疊頂端的索引 // 將元素 x 放入堆疊的最上面 void push(int x) { stack[top++] = x; } // 取出堆疊最上面的元素 void top() { return stack[top - 1]; } // 從堆疊頂端移除元素 void pop() { if (top > 0) --top; } // 檢查堆疊是否為空 bool empty() { return top == 0; }
雖然看起來很簡單,不過其實還有更簡單的方式!就是使用 C++ STL 中的 stack
:
stack<int> stk; // 把 1 放入堆疊 stk.push(1); // 把 2 放入堆疊 stk.push(2); // 印出 2 cout << stk.top() << endl; // 把最頂端的 2 移除 stk.pop(); // 印出 1 cout << stk.top() << endl;
這樣就完成了一個簡單的堆疊實作!下個章節將介紹堆疊的應用。