学習メモ・備忘録
スタックとキュー
後入れ先出し(LIFO)型のバッファがスタック、先入れ先出し(FIFO)型のバッファが キューである。
stackSample.py
stack = []
for i in range(10):
stack.append(i)
if len(stack)>4:
print(stack.pop())
実行結果
4
5
6
7
8
9
queueSample.py
queue = []
for i in range(10):
queue.append(i)
if len(queue)>4:
print(queue.pop(0))
実行結果
0
1
2
3
4
5
ただし、キューをリストで実装するとpop(0)
によって先頭のデータが取り出された後、残りのデータを一つづつずらさなければならないため効率が悪いので、collections
パッケージのdeque
を利用する。
dequeSample.py
from collections import deque
queue = deque([])
for i in range(10):
queue.append(i)
if len(queue)>4:
print(queue.popleft())
実行結果
0
1
2
3
4
5