ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • CircularList 구현
    Programming/C,C++ 2012. 10. 21. 14:23
    728x90

    오늘은 원형리스트(circularList)에 대해서 정리해보겠습니다.


    일반적으로 단일리스트와 다르게 원형 리스트는 맨마지막 노드의 링크가 NULL이 아니라 맨 처음 노드와 연결되어 있습니다.

    원형리스트의 첫 번째 노드의 위치 값(position)은 0이며, 마지막 노드의 위치의 인덱스는 CurrentElementCount -1 입니다. 


    그러면 어떻게 원형리스트를 순환하면서 이게 첫번째인지, 마지막 노드인지 알수 있을까요?

    이런 문제를 해결하기 위해서 HeaderNode가 하나 존재합니다.


    즉, pPreNode == HeaderNode->link 

    현재 찾고 있는 노드와 헤더노드와 가르키는 곳이 동일하다면  pPreNode는 현재 마지막 노드에 있다는 것을 알 수 있습니다. 


    이번 원형 리스트 또한 분할 컴파일을 실시하였습니다.


    circularlist.h

    헤더파일 선언 입니다. 기본적인것들로만 구성되어 있습니다. 다만 분할컴파일때문에 #ifndef로 한번만 컴파일 되게 했습니다.


    circularlist.cpp


    모르시면 댓글로 질문을~


    main.cpp



    'Programming > C,C++' 카테고리의 다른 글

    포인터(Pointer) 기본 정리  (0) 2012.10.28
    배열로 구현한 Stack  (0) 2012.10.27
    DoubleLinkedList(이중연결리스트)  (0) 2012.10.21
    작지만 큰 차이!  (0) 2012.10.18
    linkedlist  (0) 2012.10.18
Designed by Tistory.