더북(TheBook)

코드 11-6은 최소 우선순위 큐를 구현한 것입니다. 두 가지만 살펴보겠습니다. 먼저 push() 메서드를 보면 키와 데이터를 튜플로 묶어 전달하는 것을 알 수 있습니다. 내부적으로는 튜플의 첫 번째 요소인 키를 기준으로 정렬합니다. 두 번째로 파이썬의 힙은 배열을 0번부터 시작하는군요.

이제 테스트 코드를 작성하고 잘 동작하는지 살펴봅시다.

코드 11-7

if __name__ == "__main__":
    pq = MinPriorityQueue()

    pq.push(Element(2, "kim"))
    pq.push(Element(14, "park"))
    pq.push(Element(9, "choi"))
    pq.push(Element(11, "lee"))
    pq.push(Element(6, "yang"))
    pq.push(Element(8, "jang"))

    while not pq.is_empty():
        elem = pq.pop()
        print(f"key[{elem[0]}] : data[{elem[1]}]")
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.