Q. 우선순위 큐를 이용해서 다수의 문자열을 저장하고, 저장된 문자열을 꺼내어 출력하는 프로그램을 작성해보자.
(단, 힙에 저장되는 문자열은 길이가 짧을 수록 우선순위가 높다고 가정한다.)
usefulHeap.h
의 typedef 선언 변경
typedef char HData; -> typedef char * HData;
Main.c
#include <stdio.h>
#include <string.h>
#include "PriorityQueue.h"
int DataPriorityComp(char * str1, char * str2)
{
return strlen(str2) - strlen(str1);
}
int main(void)
{
PQueue pq;
PQueueInit(&pq, DataPriorityComp);
PEnqueue(&pq, "Good morning");
PEnqueue(&pq, "I am a boy");
PEnqueue(&pq, "Priority Queue");
PEnqueue(&pq, "Do you like coffee");
PEnqueue(&pq, "I am so happy");
while(!PQIsEmpty(&pq))
printf("%s \n", PDequeue(&pq));
return 0;
}