
삽입(5) - 삽입(2) - 삽입(3) - 삽입(7) - 삭제() - 삽입(1) - 삽입(4) - 삭제() 이라고 할 때

삽입(5) - 삽입(2) - 삽입(3) - 삽입(7) - 삭제() - 삽입(1) - 삽입(4) - 삭제()

삽입(5) - 삽입(2) - 삽입(3) - 삽입(7) - 삭제() - 삽입(1) - 삽입(4) - 삭제()

삽입(5) - 삽입(2) - 삽입(3) - 삽입(7) - 삭제() - 삽입(1) - 삽입(4) - 삭제()

삽입(5) - 삽입(2) - 삽입(3) - 삽입(7) - 삭제() - 삽입(1) - 삽입(4) - 삭제()

삽입(5) - 삽입(2) - 삽입(3) - 삽입(7) - 삭제() - 삽입(1) - 삽입(4) - 삭제()

삽입(5) - 삽입(2) - 삽입(3) - 삽입(7) - 삭제() - 삽입(1) - 삽입(4) - 삭제()

삽입(5) - 삽입(2) - 삽입(3) - 삽입(7) - 삭제() - 삽입(1) - 삽입(4) - 삭제()

삽입(5) - 삽입(2) - 삽입(3) - 삽입(7) - 삭제() - 삽입(1) - 삽입(4) - 삭제()

https://freedeveloper.tistory.com/370?category=888096
💡 list 이용
queue = [1, 2, 3]
queue.append(4)
~~> queue : [1, 2, 3, 4]
queue.append(5)
~~> queue : [1, 2, 3, 4, 5]
queue.pop(0)
~~> queue : [2, 3, 4, 5]
queue.pop(0)
~~> queue : [3, 4, 5, 6]
queue = [3, 2, 1]
queue.insert(0, 4)
~~> queue : [4, 3, 2, 1]
queue.insert(0, 5)
~~> queue : [5, 4, 3, 2, 1]
queue.pop()
~~> queue : [5, 4, 3, 2]
queue.pop()
~~> queue : [5, 4, 3]
list는무작위 접근에 최전화된 자료 구조이기 때문에 성능 측면에서 추천되지 않는다.queue가 담고 있던 모든 데이터를 앞/뒤로 쉬프트(shift)해주지 않으면 queue[i]의 결과값이 정확하지 않을 수 있다.💡 deque 이용
collections 모듈의 deque는 double-ended queue의 약자로 데이터를 양방향에서 추가하고 제거할 수 있게 해주는 자료 구조이다list에는 없는 popleft()라는 메서드를 제공해주어 첫 번째 데이터를 제거할 수 있게 해준다.from collections import deque
queue = deque([1, 2, 3])
queue.append(4)
~~> queue : deque([1, 2, 3, 4])
queue.append(5)
~~> queue : deque([1, 2, 3, 4, 5])
queue.popleft()
~~> queue : deque([2, 3, 4, 5])
queue.popleft()
~~> queue : deque([3, 4, 5])
from collections import deque
queue = deque([3, 2, 1])
queue.appendleft(4)
~~> queue : deque([4, 3, 2, 1])
queue.appendleft(5)
~~> queue : deque([5, 4, 3, 2, 1])
queue.pop()
~~> queue : deque([5, 4, 3, 2])
queue.pop()
~~> queue : deque([5, 4, 3])
popleft()와 appendleft()메서드 모두 O(1) 의 시간 복잡도를 가진다.linked list를 사용하고 있기 때문에 i번째 데이터에 접근하려면 앞/뒤부터 i번 순회해 접근할 수 밖에 없다.💡 Queue 사용
deque와 달리 방향성이 없기 때문에 데이터 추가와 삭제가 하나의 메서드로 처리put(x)get()from queue import Queue
que = Queue()
que.put(1)
que.put(2)
que.put(3)
que.get()
~~> 1
que.get()
~~> 2
que.get()
~~> 3
Queue의 성능도 deque와 마찬가지로 데이터를 추가 및 삭제 : O(1),