74.0 연결 리스트 구현하기

프로그래밍에서 빼놓을 수 없는 부분이 자료구조입니다. 이번에는 간단하면서도 널리 쓰이는 연결 리스트(linked list)를 구현해보겠습니다.

연결 리스트는 데이터가 담긴 노드(메모리 공간)를 일렬로 연결해놓았다고 해서 연결 리스트라고 부르며 특징은 다음과 같습니다.

  • 리스트의 중간 지점에 노드를 손쉽게 추가하거나 삭제할 수 있습니다.
  • 특정 노드를 찾으려면 노드를 모두 검색해야 합니다(최악의 경우).
  • 크기가 고정되어 있지 않습니다.

다음은 다른 노드를 가리키는 포인터가 하나씩만 있는 단일 연결 리스트(singly linked list)입니다.

▼ 그림 74‑1 단일 연결 리스트

지금부터 구조체, 포인터, 함수, 메모리 할당을 사용하여 단일 연결 리스트를 구현하는 방법을 알아보겠습니다. 참고로 연결 리스트는 기본적인 자료 구조이지만 포인터를 사용하다 보니 많은 사람들이 어려워하는 부분입니다. 따라서 이해가 잘 안 되더라도 걱정할 필요는 없습니다.