티스토리 뷰

[자료구조] 이중 연결 리스트

< 이전 내용 >

 

안녕하세요 ! 우디입니다.🌞

오늘은 이중 연결 리스트 ( Doubly Linked List )에 대해 알아봅시다 !


이중 연결 리스트 ( Doubly Linked List )란 ?

특정 노드에서 양방향으로 자유롭게 움직일 수 있는 연결리스트다.

➤ 단순 연결 리스트 ( Singly Linked List ) 와 원형 연결 리스트 ( Circular Linked List )는 한 방향으로만 노드에서 노드를 움직일 수 있었지만 , 이중 연결 리스트는 양방향으로 갈 수 있다. 👈👉

 

이중 연결 리스트 ( Doubly Linked List ) 구현

p == p -> rlink -> llink == p -> llink -> rlink // 항상 성립한다.

 

헤드 노드 ( head node )

이중 연결 리스트 ( Doubly Linked List )는 헤드 노드 라는 특별한 노드를 추가하는 경우가 많다.

헤드 노드 ( head node )는 데이터를 가지고 있지 않고 , 헤드 포인터 ( head pointer ) 와는 구별하여야 한다.

 

삽입 ( 순서가 매우 매우 매우 중요하다 )

(1). 맨 앞쪽에 삽입하는 경우

  • p : 삽입될 위치의 선행 노드
  • new_node : 삽입될 노드

 

❓❓❓ 1번 부터 4번 까지의 위치가 꼬이면 노드는 어떻게 연결될까 생각해보자 !!!

🙉 : 저는 신나게 막 코딩하다가 위치가 꼬일 수도 있다는 걸 늦게 알아서 고생 좀 했슈 ㅎㅎ

 

< Total >

 

삭제

  • head_node : 헤드 노드의 주소가 담김
  • removed : 삭제될 노드를 가르키는 포인터 ( ❗❗ 노드를 동적할당 받았으면 반드시 삭제할 노드는 연결리스트 변경 후 메모리 해제시켜주기❗❗ )

 

 

< Total >

 

초기화

 

출력

 


노드 동적 생성 , 삽입, 삭제 , 초기화 , 출력

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/03   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
글 보관함