ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • DoubleLinkedList(이중연결리스트)
    Programming/C,C++ 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


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


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

    다음엔 다항식 할께요~

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

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