9.2.1 우선 순위 큐 구현

먼저 우선 순위 큐를 구현해 보아요.

우선 순위 큐를 앞에서 연결리스트를 이용해서 구현하기로 해요.

우선 순위 큐에는 래핑한 연결리스트와 비교 알고리즘이 필요해요.

우선 순위 큐를 동적으로 생성하고 해제하는 메서드를 제공하기로 해요.

우선 순위 큐에 데이터를 보관하고 꺼내는 메서드와 비었는지 판별하는 함수를 제공하세요.

다음은 PriorityQueue.h 파일의 소스 내용입니다.

 

먼저 우선 순위 큐를 동적으로 생성하는 함수를 작성하기로 해요.

동적으로 메모리 할당한 후에 래핑할 연결리스트를 생성하고 알고리즘을 멤버에 설정하세요.

해제하는 함수에서는 래핑한 연결리스트를 해제한 후에 자신의 메모리를 해제하세요.

우선 순위 큐에 보관하는 기능을 구현해 보아요.

래핑한 연결리스트에 어디에 보관할 지 찾아야겠죠.

먼저 연결리스트의 시작과 끝을 얻어오세요.

만약 비교 알고리즘으로 보관한 데이터가 새로운 데이터보다 크거나 같은 곳이 원하는 위치예요.

위치를 찾았으면 찾은 위치 앞에 보관하세요.

이번에는 우선 순위 큐에서 꺼내는 함수를 작성하세요.

이 부분은 일반 큐와 구현이 같아요.

비었는지 확인하는 함수도 일반 큐와 같습니다.

다음은 PriorityQueue.c 파일의 소스 내용입니다.