더북(TheBook)

코드 5-9는 원형 큐에서 데이터를 빼내는 dequeue() 메서드입니다. 원형 큐의 첫 번째 데이터를 삭제한다고 바로 front를 뒤로 이동시켜서는 안 됩니다. dequeue 연산은 삭제된 데이터를 반환해야 하므로 먼저 ret 변수에 삭제될 요소를 담은 후 front를 뒤로 이동시키고 ret 값을 반환해야 합니다.

코드 5-10

    def peek(self):
        if self.is_empty():
            raise Exception("The queue is empty")
        return self.container[self.front]

peek() 메서드의 구현은 단순히 front의 요소를 반환하면 됩니다.

마지막으로 원형 큐가 잘 작동하는지 확인해 볼까요?

코드 5-11

cq = CQueue()

for i in range(8):
    cq.enqueue(i)

for i in range(5):
    print(cq.dequeue(), end=" ")

for i in range(8, 14):
    cq.enqueue(i)

while not cq.is_empty():
    print(cq.dequeue(), end=" ")

print()
for i in range(10):
    print(cq.container[i], end=" ")
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.