LinkedList란?
- 선형 자료구조
- 데이터와 포인터를 가진 노드가 연결되어 있는 리스트
- 각 노드가 다음 노드를 가리키는 형태
- 노드는 동적으로 할당되므로 노드들 사이의 주소 값은 연속적이지 않다.
- 중간 인덱스에 바로 접근이 불가능하다. 즉 Head 부터 다음 노드로 이동하며 탐색해야 한다.
- Head -> Node들 -> Tail 로 구성.
- Singly linked list, Doubly linked list, 원형 linked list 존재
LinkedList의 장단점
장점
- 데이터의 삽입과 삭제가 편하다
- 동적 메모리 할당
: 실행 중 데이터 크기를 유연하게 조정할 수 있다.
- 메모리 효율
: 불필요한 메모리를 미리 할당하지 않아 메모리 사용 효율성이 높다
- 다양한 타입의 데이터를 한 리스트에 저장 가능
단점
- 특정 요소를 찾는데 시간복잡도가 오래걸린다
: 삽입과 삭제 자체의 시간복잡도는 O(1)이나 삽입, 삭제하고자 하는 값을 탐색하는 수행시간이 O(N)
: 배열은 인덱스만 있으면 삽입 삭제가 O(1)이 걸린다
- 데이터 + 포인터를 함께 저장해야 하므로 추가적인 메모리를 필요로 한다
더보기
사용하면 좋은 경우
- 실행 중 데이터 크기를 유연하게 조정해야 할 때
- 다양한 타입의 데이터를 한 리스트에 저장하고 싶을 때
사용하면 불리한 경우
- 리스트 내 특정 요소를 찾아볼 경우가 많을 때
'Study > 개념 정리' 카테고리의 다른 글
[Study] Queue (0) | 2024.07.12 |
---|---|
[Study] Stack (0) | 2024.07.11 |
[Study] 제네릭 & 람다 & LINQ & Reflection (0) | 2024.07.09 |
[Study] GC (0) | 2024.07.08 |
[Study] 상속과 인터페이스 (0) | 2024.07.05 |