linked list와 array의 차이
13 May 2019해당 포스트는 Linked List vs Array를 번역하여 작성하였습니다. 잘못된 부분이 있다면 댓글 부탁드립니다.
array와 linked list는 비슷한 타입의 선형 데이터를 저장하는 데 사용됩니다. 그러나 각각의 장단점이 있습니다.
Array와 Linked list의 차이점
- Array는 비슷한 타입의 요소를 모아놓은 데이터구조이고, Linked List는 순서가 정해지인 않은 노드로 연결된 요소들의 집합으로 이루어진 데이터 구조입니다.
- Array안에 있는 요소들은 인덱스를 가지고 있습니다. 예를 들어 네번 째 요소에 접근하기 위해서 변수 이름과 함께 인덱스를 작성하거나 대괄호안에 인텍스를 작성하면 됩니다.
- Linked List는 네 번째 요소에 접근하기위해서는 첫 번째 요소를 통해서 순차적으로 접근해야합니다.
- 요소에 접근하는 속도는 Array가 빠르지만, Linked List는 Array보다 상대적으로 느립니다.
- 요소를 추가하거나 제거하는데 Array는 오랜 시간이 걸립니다. 반면에 Linked List는 빠릅니다.
- Array는 크기가 고정되어 있지만 Linked List는 크기가 유동적이고 요소의 크기만큼 확장할 수 있습니다.
- Array의 경우, 메모리가 컴파일할 때 할당되지만 Linked List는 실행 혹은 런타임시에 메모리에 할당됩니다.
- Array 안에서 순차적으로 저장되지만, Linked List는 랜덤으로 저장됩니다.
- Array의 경우, 요소가 array의 인덱스에 저장되기때문에 메모리 요구사항이 작지만, Linked List는 이전과 이후의 참조를 함께 저장해야하기 때문에 상대적으로 메모리를 차지하는 양이 많습니다.
- 추가적인 메모리 사용은 Array에서는 비효율적이지만 Linked List에서는 효율적입니다.