스택은 제한적으로 접근할 수 있는 나열구조이다. 그 접근 방법은 언제나 목록의 끝에서만 일어난다. - wikipedia
stack = [] # init
stack.append(3) # push
stack.append(6)
stack.append(9)
print(stack) # [3,6,9]
print(stack.pop()) # pop, stack = [3,6]
print(stack[-1]) # top
큐는 시퀸스에서 유지 관리되는 엔티티의 모음이며, 시퀸스의 한쪽 끝에 엔티티를 추가하고 다른 쪽 끝에서 엔티티를 제거 하여 수정할 수 있다.
queue = [] # init
queue.append(3) # push
queue.append(6)
queue.append(9)
print(queue) # [3,6,9]
print(queue.pop(0)) # pop, queue = [6,9]
from collections import deque
queue = deque() # init
queue.append(3) # push
queue.append(6)
queue.append(9)
print(queue) # [3,6,9]
print(queue.popleft()) # pop, queue = [6,9]
선형 큐의 문제점 (배열로 큐를 선언할 시 큐의 삭제와 생성이 계속 일어났을 때 마지막 배열에 도달한 후 실제로는 데이터 공간이 남아있지만 오버플로우가 발생 )을 보완한 것 - wikipedia
덱은 양쪽 끝에서 삽입과 삭제가 모두 가능한 자료구조의 한 형태이다
from collection import deque
queue = deque() # init
queue.append(3) # push_back
queue.append(6)
queue.appendleft(9) # push_front
print(queue) # [9,3,6]
print(queue.popleft()) # pop_front, queue = [3,6]
print(queue.pop()) # pop_back, queue = [3]