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]