- 스택(Stack)
먼저 들어온 데이터가 나중에 나가는 형식(선입후출 / First In, Last Out)의 자료구조이다. 입구와 출구가 동일한 형태에 데이터를 쌓는다고 생각할 수 있다.
- 스택 구현하기
파이썬에서 리스트 자료형의 append() 메서드는 리스트의 맨 끝에 데이터를 입력해주는 기능을 제공하고, pop()메서드는 리스트의 맨 끝의 데이터를 출력해주는 기능을 제공하기 때문에 리스트를 이용하여 스택 구현이 가능하다.
stack = []
stack.append(1)
stack.append(2)
stack.append(3)
stack.pop()
print(stack)
실행 결과
'1 입력 -> 2 입력 -> 3입력 -> 가장 나중에 들어온 데이터 삭제' 의 과정을 거쳐 리스트에 [1, 2]만 남게 되었다.
- 큐(Queue)
먼저 들어온 데이터가 먼저 나가는 형식(선입선출/ First In, First Out)의 자료구조이다. 입구와 출구가 반대편에 있는 형태라고 생각할 수 있다.
- 큐 구현하기
파이썬에서 큐를 구현하기 위해서는 collections의 deque라이브러리를 사용한다. deque의 append()메서드는 리스트에서와 마찬가지로 deque의 가장 오른쪽에 데이터를 입력하고, popleft() 메서드는 리스트의 pop() 메서드와 비슷하게 deque의 가장 왼쪽의 데이터를 출력한다.
from collections import deque
queue = deque()
queue.append(1)
queue.append(2)
queue.append(3)
queue.popleft()
print(queue)
실행 결과
'1입력 -> 2입력 -> 3입력 -> 가장 왼쪽에 있는 데이터 출력'의 과정을 거쳐 덱(deque)에 [2, 3]만 남게 되었다.