[Algorithm] ArrayList와 LinkedList란 무엇인가?
- ETC./Algorithm
- 2018. 8. 22.
ArrayList(선형리스트)
선형 리스트는 배열과 같이 연속되는 기억장소에 저장되는 리스트를 말한다.
연접 리스트(Dense List) 또는 축차 구조(Sequential Structure)라고도 한다.
선형리스트의 특징
1. 가장 간단한 자료구조이다.
2. 접근속도가 빠르다.
3. 중간에 자료를 삽입하기 위해서는 연속된 빈 공간이 있어야 한다.
4. 기억장소를 연속적으로 배정받기 때문에 기억장소 이용 효율은 밀도가 1로서 가장 좋다.
5. 자료의 개수가 n개일 때 삽입 시의 평균 이동 횟수는 (n+1)/2이고, 삭제 시에는 (n-1)/2이다.
6. 삽입, 삭제 시 자료의 이동이 필요하기 때문에 작업이 번거롭다.
LinkedList(연결리스트)
연결 리스트는 자료들을 반드시 연속적으로 배열시키지는 않고 임의의 기억공간에 기억시키되, 자료 항목의 순서에 따라 노드의 포인터 부분을 이용하여 서로 연결시킨 자료 구조이다.
연결 리스트의 특징
1. 노드의 삽입, 삭제 작업이 용이하다.
2. 기억공간이 연속적으로 놓여 있지 않아도 저장이 가능하다.
3. 연결을 위한 링크(포인터) 부분이 필요하기 때문에 순차 리스트에 비해 기억공간 이용 효율이 좋지 않다.
4. 연결을 위한 포인터를 찾는 시간이 필요하기 때문에 접근 속도가 느리다.
5. 중간 노드 연결이 끊어지면 그 다음 노드를 찾기 힘들다.
6. 희소 행렬 을 링크드 리스트로 표현하면 기억장소가 절약된다.
7. 트리를 표현할 때 가장 적합한 자료 구조이다.
연결리스트의 종류
'ETC. > Algorithm' 카테고리의 다른 글
[Algorithm] 큐(Queue)와 데크(Deque)에 대해서 (0) | 2018.08.24 |
---|---|
[Algorithm] 스택(Stack)이란 무엇인가? (0) | 2018.08.23 |
[Algorithm] 자료구조란 무엇인가? (1) | 2018.08.21 |
[Algorithm] 여러가지 정렬 속도 비교(정렬의 시간복잡도) (3) | 2018.05.07 |