언어 자료구조 알고리즘/디딤돌 자료구조 (C언어)

[C언어 자료구조] 5.3 스택 테스트

언제나휴일 2016. 11. 26. 13:12
반응형

[C언어 자료구조] 5.3 스택 테스트


 

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

int main()

{

    EHStack *ehs = 0;

    Book *book = 0;

 먼저 스택을 동적으로 생성합니다.

    ehs = New_EHStack();

 적당히 자료를 스택에 보관합니다. 여기에서는 세 개의 도서를 보관할게요.

    EHStack_Push(ehs,New_Book("C언어","홍길동",10));

    EHStack_Push(ehs,New_Book("C++언어","강감찬",20));

    EHStack_Push(ehs,New_Book("자료구조","김구",5));

 

 이제 하나의 자료를 꺼내어 봅시다. 가장 최근에 보관한 자료는 "자료구조"입니다.

    book = (Book *)EHStack_Pop(ehs);

    if(book)

    {

        Book_View(book);

        Delete_Book(book);

    }

 

 두 개의 도서 정보를 추가로 보관할게요.

    EHStack_Push(ehs,New_Book("알고리즘","이순신",9));

    EHStack_Push(ehs,New_Book("디자인패턴","정약용",13));

 

 스택이 비어있지 않다면 반복해서 보관한 도서를 꺼내와 출력할게요. 스택은 LIFO 방식으로 자료를 꺼내주므로 "디자인 패턴", "알고리즘", "C++언어", "C언어" 순으로 출력하면 정상적으로 동작하는 것입니다.

    while( ! EHStack_IsEmpty(ehs))

    {

        book = (Book *)EHStack_Pop(ehs);

        if(book)

        {

            Book_View(book);

            Delete_Book(book);

        }

    }

    Delete_EHStack(ehs);

    return 0;

}

 

 이상으로 스택 구현을 마칠게요

반응형