배열과 링크드 리스트
배열
- 데이터를 논리적 순서에 따라 순차적으로 데이터를 입력하며, 물리적 주소 또한 순차적이다.
- 인덱스를 가지고 있어서 원하는 데이터를 한번에 접근이 가능하기 때문에 접근 속도가 매우 빠르다.
- 그러나 배열은 데이터의 삽입/삭제에는 취약하다.
n 배열의 특성상 데이터 삽입/삭제가 이루어지면, 다음 위치의 모든 데이터의 위치를 변경해야 하기 때문이다.
링크드 리스트
- 데이터를 논리적 순서에 따라 데이터를 입력한다. 하지만 물리적 주소는 순차적이지 않다.
- 현재 위치 이전 및 다음 위치를 기억하고 있다.
n 따라서 한번에 데이터에 접근할 수 없고, 순차적으로 링크를 따라가야만 접근이 가능하다.
- 링크드 리스트의 종류
n 링크드 리스트(Simple Linked List)
u 노드가 자기 다음의 노드의 주소를 가지고 있다.
n 환형 링크드 리스트(Circular Linked List)
u 마지막 노드의 링크가 첫번째 링크를 가리킨다.
n 이중 연결 리스트(Doubly Linked List)
u 각 노드가 자기 앞의 노드와 다음 노드의 주소를 가지고 있다.
배열은 데이터 삽입/삭제가 거의 없고, 읽기가 빈번하게 일어날 때 유리하고, 데이터의 삽입 삭제가 잦을 때는 링크드 리스트가 유리하다.
반응형
'개념 > 자료구조' 카테고리의 다른 글
[Java] 큐(Queue) (0) | 2016.06.10 |
---|---|
[JAVA] 스택(Stack) (3) | 2016.06.10 |
[자료구조] 힙과 힙소트 (0) | 2015.06.08 |