연결 목록을 이해하기 전에 C 프로그래밍 언어에서 배열의 단점과 포인터의 장점에 대해 알아보겠습니다.
배열의 단점
-
여기에는 정적 메모리 할당이 포함됩니다.
-
배열에서 메모리 낭비가 발생할 수 있습니다.
-
메모리 부족은 배열의 중요한 단점 중 하나입니다.
포인터의 장점
- 동적 메모리 할당이 포함됩니다.
- 메모리의 효과적인 사용은 포인터에서 경험할 수 있습니다.
연결된 목록
연결 목록은 동적 메모리 할당을 사용합니다. 즉, 그에 따라 확장 및 축소됩니다. 노드 모음으로 정의됩니다. 여기서 노드는 데이터와 링크의 두 부분으로 구성됩니다. 데이터, 링크 및 연결 목록의 표현은 다음과 같습니다. -
연결 목록의 유형
연결 목록에는 다음과 같은 네 가지 유형이 있습니다. -
- 단일/단일 연결 목록
- 이중/이중 연결 목록
- 순환 단일 연결 목록
- 원형 이중 연결 목록
단일 연결 리스트
아래에 주어진 표현을 참조하십시오 -
노드는 다음과 같은 두 부분으로 구성됩니다. -
- 데이터
- 링크
링크 필드는 항상 목록의 다음 노드를 가리킵니다.
마지막 노드의 링크 필드가 null입니다.
이중 연결 리스트
아래에 주어진 표현을 참조하십시오 -
노드는 세 부분으로 구성됩니다. 즉
- 데이터 부분
- 왼쪽 링크
- 오른쪽 링크
왼쪽 링크는 항상 목록의 왼쪽 노드를 가리키고 오른쪽 링크는 항상 목록의 오른쪽 노드를 가리킵니다.
첫 번째 노드의 왼쪽 링크와 마지막 노드의 오른쪽 링크는 Null이어야 합니다.
순환 단일 연결 리스트
아래에 주어진 표현을 참조하십시오 -
노드는 두 부분으로 구성됩니다. 즉,
- 데이터 부분
- 링크 부분
링크 필드는 항상 목록의 다음 노드를 가리킵니다.
마지막 노드의 링크 부분은 항상 첫 번째 노드를 가리킵니다.
원형 이중 연결 리스트
아래에 주어진 표현을 참조하십시오 -
노드는 세 부분으로 구성됩니다. 즉,
- 데이터 부분
- 왼쪽 링크
- 오른쪽 링크
왼쪽 링크는 항상 목록의 왼쪽 노드를 가리키고 오른쪽 링크는 목록의 오른쪽 노드를 가리킵니다.
첫 번째 노드의 왼쪽 링크는 마지막 노드를 가리키고 마지막 노드의 오른쪽 링크는 첫 번째 노드를 가리킵니다.