Stack - 堆疊
堆疊是一種 LIFO(Last In First Out) 的資料結構,常用方法有添加元素,讀Stack頂元素,彈出(pop) Stack頂元素,判斷堆疊是否為空。
程式碼實現
Python
stack = []
len(stack) # size of stack
# more efficient stack
import collections
stack = collections.deque()
list
作為最基本的python
資料結構之一, 可以很輕鬆地實現stack
。 如果需要更高效的stack
, 建議使用deque
。
Methods
len(stack) != 0
- 判斷stack
是否為空stack[-1]
- 取堆疊頂元素,不移除pop()
- 移除堆疊頂元素並返回該元素append(item)
- 向堆疊頂添加元素
Java
Deque<Integer> stack = new ArrayDeque<Integer>();
s.size(); // size of stack
JDK doc 中建議使用Deque
代替Stack
實現堆疊,因為Stack
繼承自Vector
,需要synchronized
,性能略低。
Methods
boolean isEmpty()
- 判斷堆疊是否為空,若使用 Stack 類構造則為 empty()E peek()
- 取堆疊頂元素,不移除E pop()
- 移除堆疊頂元素並返回該元素E push(E item)
- 向堆疊頂添加元素