Stack과 Queue는 비슷한 구조인데 자료를 읽어들이는 순서가 다르다.
Stack은 Last In First Out이라고 한다. 마지막으로 저장한 데이터가 처음으로 읽힌다는 뜻이다. Stack에서 데이터 저장은 push라고 한다. 데이터를 읽어들이는 건 pop이라고 한다. 여기서 pop은 읽기와 동시에 Stack에서 삭제한다.

List를 사용한 Stack 구현 예제
class Stack: def __init__(self): self._stack = [] def push(self, data): self._stack.append(data) def pop(self): if len(self._stack) == 0: return None data = self._stack[-1] del self._stack[-1] return data def peek(self): if len(self._stack) == 0: return None data = self._stack[-1] return data
Queue는 Stack과 반대로 First In First Out이다. 먼저 push된 자료가 먼저 pop된다는 뜻이다.

List를 사용한 Queue 구현 예제
class Queue: def __init__(self): self._queue = [] def push(self, data): return self._queue.append(data) def pop(self) if len(self._queue) == 0: return None return self._queue.pop() def peek(self): if len(self._queue) == 0: return None return self[0]