Stack
last update: 2025-06-09
Stack 是一種後進先出(LIFO, Last In First Out)的資料結構,常用於處理需要「反向順序」的任務,例如函式呼叫堆疊、字元反轉、遞迴展開等。
一、Stack 的基本結構
屬性
說明
top
指向目前堆疊頂端的節點
size
當前堆疊中的元素數量
max_size
堆疊可容納的最大元素數量(可選)
二、基本節點結構(Python 範例)
class Node:
def __init__(self, value):
self.value = value
self.next = None三、Stack 操作
1. 加入元素(push)
2. 移除元素(pop)
3. 查看頂端元素(peek)
四、輔助方法與屬性
五、Stack 特性
後進先出(LIFO):最後加入的元素最先被取出
結構簡單:只操作堆疊頂端即可
適用場景:遞迴展開、括號匹配、Undo 操作等
六、Stack vs Queue 比較
特性
Stack
Queue
操作順序
LIFO(後進先出)
FIFO(先進先出)
插入端
頂端
尾端
移除端
頂端
前端
適用場景
遞迴、字元反轉、括號驗證
排隊、排程、輸出緩衝器
Stack 是一種輕量且實用的資料結構,尤其適合處理需要暫存與反向處理的邏輯。進一步可延伸至雙向堆疊、限制容量堆疊(Bounded Stack)等變化結構。
Last updated