더북(TheBook)

테스트 코드까지 붙여 이 코드를 실행하면 1 2 3 4 5가 출력됩니다.

코드 5-3을 보면 파이썬의 동적 배열인 리스트를 이용해서 큐를 구현했습니다. 그런데 문제점이 하나 눈에 띄는군요. 스택에서 pushpop 연산은 동적 배열의 맨 마지막에서 일어나므로 빅오가 O(1)이었습니다. 반면, 큐에서 enqueue 연산은 rear에 데이터를 추가하므로 스택과 같은 O(1)이지만, dequeue 연산은 동적 배열의 첫 번째 데이터를 삭제한 후 이후 모든 데이터를 한 번씩 옮겨야 하므로 O(n)이 됩니다. 그렇다면 동적 배열의 장점을 충분히 살린 큐는 만들 수 없을까요? 이에 대한 해답으로 다음 절에서는 원형 큐를 만들어 보겠습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.