연결 리스트의 변형

연결 리스트는 다양한 형태로의 변형으로 발전되었다.

연결 리스트 영문명칭 설명
단순 연결 리스트 singly linked list - 각각의 노드별로 링크(포인터) 부분이 하나만 있고
- 각각의 후행 노드만을 가리키는
- 단순한 연결 리스트 구조.
이중 연결 리스트 doubly linked list - 노드는 링크 두개를 가지며
- 각각은 선행 노드를 가리키는 링크와 후행 노드를 가리키는 링크로 구성됨
(단순) 원형 연결 리스트 circular linked list - 마지막 노드의 링크를 NULL 대신 특정 노드에 대한 링크를 가지게 함
- 통상적으로 마지막 노드의 링크가 가리키는 건 첫 노드
원형 이중 연결 리스트 doubly circular linked list - 이중 연결 리스트와 원형 연결 리스트의 결합 형태

단순 연결 리스트의 한계와 변형 연결 리스트의 등장

단순 연결 리스트는 여러 한계를 가지고 있고, 그런 단점들을 보완하고 하고 효율적인 프로그래밍이 가능케 하기 위해 여러 가지 연결 리스트의 변형이 생겨나게 되었다.

한계(단점) 설명 변형
역방향 탐색 불가 - 선행 노드에서 후행 노드는 쉽게 접근 가능
- 후행 노드에서 선행 노드는 접근 어려움
> 이중 연결 리스트
무한 및 순환구조 구현 불가 - 끝을 알 수 없는 데이터 구조나 순환 데이터 구조 처리 불가
- 마지막에 등장하는 NULL 부분을 충분히 활용하지 못함
> 원형 연결 리스트

원형 연결 리스트

원형 연결 리스트의 개념

  • 단순 연결 리스트의 마지막 노드의 링크를 첫 노드로 연결시킨 구조
  • 한 방향으로 모든 노드가 원형으로 연결된 구조.
  • NULL 값을 갖는 마지막 노드의 링크 부분을 활용하면서도, 프로그램의 성능에 도움을 주기 위해 제안됨.
  • 한 노드로부터 다른 어떤 노드로도 접근이 가능한 구조.

이중 연결 리스트

특정 노드에서는 선행 노드와 후행 노드에 대해 간단한 프로그램 코드를 통해 접근할 수 있는 구조.

이중 연결 리스트의 개념

  • 연결 리스트의 각 노드가 두 개의 링크 부분을 가짐
  • 두 개의 링크 중 하나는 기존과 같이 후행 노드를 가리키며
  • 나머지 하나의 노드는 선행 링크를 가리킴
  • 이로써 기존 단순 연결 리스트에서 “선행 노드”로의 연결이 어렵던 점을 극복

Reference

자료구조 (강태원, 정광식 공저)