Programming/C,C++

CircularList 구현

홍열 2012. 10. 21. 14:23
728x90

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


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

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


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

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


즉, pPreNode == HeaderNode->link 

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


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


circularlist.h

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


circularlist.cpp


모르시면 댓글로 질문을~


main.cpp