본문 바로가기
BASE/Structure

자료구조 - 연결 리스트 (Linked List)

by 진아링 2021. 1. 26.
728x90
반응형

1. 연결 리스트란?

연결 리스트(Linked List)란 불연속적 메모리 공간에 데이터를 빈틈없이 저장하며 노드를 연결하여 만든 리스트로 첫 번째 노드를 헤드, 마지막 노드를 테일이라고 한다. 각 노드는 데이터와 다음 노드를 가리키는 포인터로 이루어져있다. 크기가 고정되어 있지 않아 크기 제한에서 자유롭다. 인덱스 접근이 불가능하다.

 

2. 시간 복잡도

1) 삽입

- 리스트의 맨 앞/뒤에 삽입하는 경우 : O(1)

- 리스트의 중간에서 삽입하는 경우 : O(n) (탐색)

 

2) 삭제

- 리스트의 맨 앞/뒤에 삭제하는 경우 : O(1)

- 리스트의 중간에서 삭제하는 경우 : O(n) (탐색)

 

3) 탐색

- O(n)

 

3. 장단점

1) 장점

- 포인터로 연결되어 있어 포인터가 가리키는 노드만 변경하면 되기 때문에 삽입과 삭제가 용이하다.

- 크기가 정해져 있지 않고 동적으로 생성된다

- 연속적인 메모리 할당이 필요없다.

- 사용한 메모리를 재사용할 수 있다.

 

2) 단점

- 원소를 탐색할 때 임의의 접근은 불가능하기 때문에 느림

- 포인터를 위한 추가 공간이 필요하며 프로그램 작성이 어려움

 

4. 응용

- 크기가 정해져 있지 않을 때

- 삽입과 삭제가 자주 일어날 때

- 검색을 자주 하지 않을 때

728x90
반응형

'BASE > Structure' 카테고리의 다른 글

자료구조 - 이진 트리 (Binary Tree)  (0) 2021.01.27
자료구조 - 트리 (Tree)  (0) 2021.01.27
자료구조 - 배열(Array)  (0) 2021.01.26
자료구조 - 해싱(Hashing)  (0) 2021.01.08
자료구조 - 우선 순위 큐(Priority Queue)  (0) 2021.01.07

댓글