더북(TheBook)

원형 큐가 비어 있는지 판단하려면 front와 rear가 같은지 비교하면 됩니다.

코드 5-6

    def __step_forward(self, x): 
        x += 1
        if x >= CQueue.MAXSIZE:
        x = 0
    return x

편의 함수: front나 rear를 뒤로 이동했을 때 동적 배열을 벗어난다면 동적 배열의 맨 처음으로 이동시킵니다.

코드 5- 6의 __step_forward() 메서드는 front나 rear의 이동을 돕습니다. enqueuedequeue 연산을 할 때 무작정 front나 rear에 1을 더할 수는 없습니다. 항상 동적 배열의 끝에 도달했는지 아닌지를 판단한 후 이동해야 하므로 이를 편의 메서드로 만들어 둡니다. __step_forward() 메서드는 뒤로 이동한 후 동적 배열을 벗어나면 배열의 맨 처음으로 이동하도록 만들어 줍니다.

코드 5-7

    def is_full(self):
        next = self.__step_forward(self.rear)
        if next == self.front:
            return True
        return False
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.