반응형
이중연결리스트
- 이중연결리스트는 각 노드가 앞 노드를 가리킬 수 있도록 한다.
- 단순 연결리스트의 각 노드에 두 개의 노드 포인터를 두어서 하나를 앞쪽 노드, 하나는 뒤쪽 노드를 가리키도록 한다.
- 어느 방향으로나 탐색이 가능한 형태다.
이중원형연결리스트
- 이중 연결리스트와 원형 연결리스트의 개념을 합한 것이다.
- 왼쪽 끝 노드의 L.Link는 오른쪽 끝 노드를, 오른쪽 끝 노드의 R.Link는 왼쪽 끝 노드를 가리킨다.
헤드노드를 가진 이중원형연결리스트
- 이중 원형 연결리스트는 연산이 매우 복잡하기 때문에, 연산 알고리즘을 간단하게 하기 위해서 헤드 노드를 가진다.
- 헤드 노드는 다른 노드와 형태가 같지만, 데이터 값을 가지지는 않는다.
이중원형연결리스트의 삽입
1. temp는 삽입할 노드를 가리키고, ptr은 삽입할 위치의 앞 노드를 가리킨다.
2. temp->Llink = ptr;
3. temp->Rlink = ptr->Llink;
4. ptr->Rlink->Llink = temp;
5. ptr->Rlink = temp;
진짜 어렵다. 복잡하고 직관적이지 않다. 익숙해지는 수 밖에. 실력이 늘었는지 확인하려면 나중에 여기로 돌아와서 어떻게 이해되는 지를 확인해볼 것.
이중원형리스트의 삭제
1. temp가 삭제할 노드를 가리킴
2. temp->Llink->Rlink = temp->Rlink;
=> A노드->Rlink = C노드
3. temp->Rlink->Llink = temp->Llink;
=> C노드->Llink = A노드
4. B노드 메모리 반환
반응형
'Programming > Data Structure' 카테고리의 다른 글
[C언어] 원형연결리스트(큐) 은행창구 시뮬레이션 (0) | 2022.04.23 |
---|---|
원형연결리스트 (0) | 2022.04.20 |
[C언어] 스택의 응용 (후위표현식) (0) | 2022.04.19 |
[C언어] 스택 연결리스트 자료구조 구현하기 (0) | 2022.04.17 |
[C언어] 연결리스트(링크드리스트) 자료구조 구현 (0) | 2022.04.16 |