가장 큰 차이는 인덱스의 유무
배열에서는 인덱스를 통해 빠르게 데이터의 조회가 가능하다. 그런데 이 인덱스때문에 원소가 삭제되어옫 인덱스를 유지해야해서 해당 메모리를 유지해야한다는 단점. 그래서 그 크기에 맞는 배열을 선언하지 않으면 메모리 낭비를 초래.
리스트는 이런 메모리의 낭비를 줄이기 위해 인덱스를 포기하고 노드를 연결해 데이터를 적재하는 형태의 선형 자료구조
불연속적인 메모리 공간에 원소와 다음 노드의 주소를 가진 노드가계속해서 이어져 있어 선형의 형태를 유지하는 것이다. 리스트는 주로 원소의 삽입과 삭제가 빈번하거나, 자료의 검색이 빈번하지 않은 경우에 사용한다.
배열 → 인덱스로 바로 접근 가능. 자료구조 크기 크면 더 좋다! But 삽입과 삭제가 어렵고 크기가 가변이 아님.
리스트 → 크기 가변, 색인 불가
참고) 리스트의 다양한 종류
리스트는 링크된 형태에 따라 다음과 같이 종류를 나눌 수 있다.
- 링크드 리스트(Single Linked List)
<Single Linked List>
- 더블 링크드 리스트(Double Linked List)
<Double Linked List>
- 순환 링크드 리스트(Circular Linked List)
<Circular Linked List>
- 순환 더블 링크드 리스트(Doubly Circular Linked List)