본문 바로가기

iOS (스파르타)

링크드 리스트

알고리즘 특강시간에 링크드 리스트에 대해 알아오라고 하셨던게 생각나서!! 작성!!!

 

 

 

링크드 리스트 (Linked List)

데이터를 순서대로 저장하며 각 데이터 요소가 노드(Node)로 구성된 선형 데이터 구조.
각 노드는 데이터와 다음 노드를 가리키는 포인터를 포함하고 있다.

 

링크드 리스트의 구성 요소

1. 노드(Node):

  • 데이터(Data): 노드가 저장하는 실제 값
  • 포인터(Pointer): 다음 노드를 가리키는 참조

2. 헤드(Head):

  • 링크드 리스트의 시작 노드를 가리킴

 

주요 연산

1. 삽입(Insertion): 새로운 노드를 리스트의 끝에 추가하거나 특정 위치에 삽입

2. 삭제(Deletion): 특정 값을 가진 노드를 삭제하거나 특정 위치의 노드를 삭제

3. 탐색(Search): 리스트에서 특정 값을 찾거나 특정 위치의 값을 찾음

4. 출력(Print): 리스트의 모든 노드를 순서대로 출력

 

 

링크드 리스트는 단일, 이중, 원형 세가지 종류가 있다.

 

배열과 비슷한 점이 있으나 배열과 달리 링크드 리스트는 필요에 따라 크기를 조절할 수 있고

데이터의 삽입과 삭제가 빈번한 경우에 유용하며 요소 접근이 빈번한 경우에는 배열이 더 적합하다.