본문 바로가기
개념/자료구조

[자료구조] 배열과 링크드 리스트

by hs_seo 2015. 6. 4.

배열과 링크드 리스트

 

배열

-       데이터를 논리적 순서에 따라 순차적으로 데이터를 입력하며, 물리적 주소 또한 순차적이다.

-       인덱스를 가지고 있어서 원하는 데이터를 한번에 접근이 가능하기 때문에 접근 속도가 매우 빠르다.

-       그러나 배열은 데이터의 삽입/삭제에는 취약하다.

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