연결 리스트(Linked List)란 연결된 노드에 데이터를 저장하는 자료 구조이다.
각 노드는 데이터와 다음 노드를 가리키는 포인터를 가지고 있으며, 데이터를 동적으로 추가, 삭제할 수 있다.
연결리스트의 구성요소
- head : 연결 리스트에서 첫 번째 노드의 주소를 저장한 포인터
- node : 연결 리스트의 요소
- value : 노드에 저장된 데이터
- link: 다른 노드와의 연결을 위한 포인터
연결 리스트의 종료
- 단일 연결 리스트(Singly Linked List)'
- 각 노드가 다음 노드에 대한 참조만 가진다./
typedef struct node
{
int val;
struct node* next;
}node;
- 이중 연결 리스트(Doubly Linked List)
- 각 노드가 이전 노드와 다음 노드에 대한 참조를 모두 가진다.
- 단일 연결리스트보다 8바이트가 더 할당되어 메모리 효율성은 낮지만 값이 빈번하게 변경되어야 할 경우 유용하다.
typedef struct node
{
int val;
struct node* prev;
struct node* next;
}node;
- 환형 연결 리스트(Circular Linked List)
- 마지막 노드가 첫 번째 노드를 가리키며, 리스트의 끝과 처음이 빙글빙글 돌듯이 연결된 형태다.
- head ? 첫번째 노드 주소
- head-> value? 첫번째 노드의 값
- head->next? 두번째 노드의 주소
typedef struct node
{
int val;
struct node* next;
}node;
(참조 : 허니 C 코딩)
'자료구조&알고리즘' 카테고리의 다른 글
재귀함수 (0) | 2024.12.15 |
---|---|
연결리스트와 배열의 비교 (0) | 2024.12.09 |
이중 연결 리스트(Doubly Linked List) (0) | 2024.10.06 |
알고리즘의 성능을 평가하는 빅오 표기법 (1) | 2024.10.06 |
단일 연결 리스트(Singly Linked List) (0) | 2024.10.05 |