5.3.3 큐 테스트

큐를 테스트하는 코드를 작성합시다.

int main()
{
    EHQueue *ehq = 0;
    Book *book = 0;

먼저 동적으로 큐를 생성합니다.

    ehq = New_EHQueue();

그리고 큐에 자료를 보관합니다.

    EHQueue_Put(ehq,New_Book("C언어","홍길동",10));
    EHQueue_Put(ehq,New_Book("C++언어","강감찬",20));
    EHQueue_Put(ehq,New_Book("자료구조","김구",5));

이 상태에서 꺼내면 가장 먼저 보관한 “C언어” 제목의 도서여야 합니다. 이를 확인해 봅시다.

    book = (Book *)EHQueue_Get(ehq);
    if(book)
    {
        Book_View(book);
        Delete_Book(book);
    }

두 개의 도서를 더 보관할게요.

    EHQueue_Put(ehq,New_Book("알고리즘","이순신",9));
    EHQueue_Put(ehq,New_Book("디자인패턴","정약용",13));

큐가 비지 않으면 반복해서 꺼내와 도서 정보를 출력합시다. 제대로 작성했다면 “C++언어”, “자료구조”, “알고리즘”, “디자인패턴” 순으로 출력할 것입니다.

    while( ! EHQueue_IsEmpty(ehq))
    {
        book = (Book *)EHQueue_Get(ehq);
        if(book)
        {
            Book_View(book);
            Delete_Book(book);
        }
    }

마지막으로 큐를 소멸합니다.

    Delete_EHQueue(ehq);
    return 0;
}