Programming/C,C++

DoubleLinkedList(이중연결리스트)

홍열 2012. 10. 21. 20:33
728x90

doublylist.cpp


doublylist.h


main.cpp


이번에는 이중연결리스트 입니다.


단일 연결리스트에 비해서 이중 연결리스트는 두개의 포인터가 존재합니다.



기존의 연결리스트가 오른쪽 링크(Right Link)만 있었다면 이중 연결리스트는 이전의 노드를 가지는 왼쪽 링크(Left Link)를 가지게 됩니다.


이러한 양방향 링크는 이전 노드에 직접적 접근이 가능하다는 접근 편의성의 장점이 있지만 동시에 추가 메모리 공간을 사용한다는 단점이 있습니다.


단일연결리스트를 구현할 때는 Header 포인터만 사용했지만, 이중 연결리스트를 구현할 때는 Header 노드를 사용해야 합니다. 


이유는 오른쪽 링크과 왼쪽 링크에 각각 연결 리스트의 첫 번째 노드와 마지막 노드를 가르키는 포인터 값을 저장하며 , 이를 통해 구현의 편리함을 느낄 수 있습니다. 


일반적으로,

pNode == pNode->pLLink->pRLink = pNode->pRLink->pLLink

는 모두 같은 값을 나타냅니다. 

 

doublylist.h


doublylist.c


main.cpp


소스코드는 보시면 이해 가실꺼예요~ 


이로써 단일연결리스트, 원형 연결리스트, 더블 연결리스트 까지 다 했네요.

다음엔 다항식 할께요~