-
728x90반응형
📌 이중 연결 리스트
💡 이중 연결 리스트의 개념
- 이중 연결 리스트(Double Linked List)란?
- 한 노드에 두 개의 Link 가 저장
- 이중 연결 리스트는 양방향으로 이동가능
- 단일 연결 리스트의 경우, 한 방향으로만 이동이 가능.
struct node{ struct node *llink; // 이전 노드 포인트 int data; struct node *rlink; // 다음 노드 포인트
💡 이중 연결 리스트의 종류
- 체인
- 처음 노드의 llink와 마지막 노드의 rlink는 NULL
- ptr = ptr -> llink -> rlink = ptr -> rlink -> llink
- 원형 이중 연결 리스트
- 원형 이중 연결리스트에 노드를 추가하는 방법
- 새로 추가되는 링크의 노드를 먼저 바꾸는 것이 좋다.
void dinsert(struct node *node, struct node *newnode){ # newnode를 node의 오른쪽에 추가 newnode -> llink = node; newnode -> rlink = node -> rlink; node -> rlink -> llink = newnode; node -> rlink = newnode; }
- 새로 추가되는 링크의 노드를 먼저 바꾸는 것이 좋다.
- 원형 이중 연결 리스트에서 노드 삭제
void ddelete(struct node *deleted){ deleted -> llink -> rlink = delete -> rlink; deleted -> rlink -> llink = delete -> llink; free(delete); }
반응형'자료구조' 카테고리의 다른 글
이진트리의 순회 (0) 2022.07.12 트리와 이진트리의 개념 (0) 2022.07.12 추가적인 리스트 연산 (0) 2022.07.12 원형 연결리스트 (0) 2022.07.10 연결리스트를 이용한 다항식의 구현 (0) 2022.07.10 - 이중 연결 리스트(Double Linked List)란?