본문 바로가기

자료구조&알고리즘

연결리스트란?

연결 리스트(Linked List)란 연결된 노드에 데이터를 저장하는 자료 구조이다. 

각 노드는 데이터와 다음 노드를 가리키는 포인터를 가지고 있으며, 데이터를 동적으로 추가, 삭제할 수 있다.

 

연결리스트의 구성요소

참조: AK Coding

  • 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 코딩)