• 이중 링크드 리스트 기본 구조


-노드는 정보(Data) & 다음 노드(Next)가 누구인지  & 이전 노드가(Prev) 누구인지 저장하고 있다.


-제일 앞의 노드(Head)와 제일 뒤의 노드(End)를 연결 시키면 원형 링크드 리스트가 된다.



  • 단일 링크드 리스트와의 차이

-이중 링크드 리스트는 전 노드에 접근 가능하다는 장점이 있다.



  • 이중 링크드 리스트 삽입


삽입할 노드가 들어갈 위치를 찾고,



노드#01의 다음노드(Next) = 삽입노드

삽입 노드의 전 노드(Prev) = 노드#01



삽입 노드의 다음노드(Next) = 노드#02

노드#02의 전 노드(Prev) = 삽입노드




삽입 종료


  • 이중 링크드 리스트 삭제
이중 링크드 리스트의 삭제는

삭제할 노드의 앞뒤를 연결 시킨 후, 삭제할 노드를 삭제하면 된다.

단일 링크드 리스트와 다른 점이라면, 뒷노드의 Prev(전 노드)도 신경 써야 한다는 점이다.



삭제할 노드를 찾고,




삭제할 노드의 앞노드(삭제 노드의 Prev) : 노드#01

삭제할 노드의 다음 노드(삭제 노드의 Next) : 노드#02


[노드#01과 노드#02를 연결]

노드#01의 다음 노드(Next) = 노드#02

노드#02의 전 노드(Prev) = 노드#01



앞뒤 노드 연결이 완료되면,

노드를 삭제하면 된다.


  • 전체 코드



'자료구조' 카테고리의 다른 글

트리 순회 알고리즘#01 전위 순회(Preorder Traversal)  (0) 2017.01.23
이진 트리(Binary Tree)  (0) 2017.01.23
큐(Queue)  (0) 2017.01.22
스택(Stack)  (0) 2017.01.21
링크드 리스트(Linked List)  (0) 2017.01.20

+ Recent posts