본문 바로가기

개발자

배열과 리스트(연결리스트)의 차이점

반응형


배열이란?

동일한 특성을 가지며 일정한 규칙에 따라 몇몇 요소가 나열되어 있는 데이터집합. 배열은 차원을 가지며, 1차원의 목록 또는 벡터, 2차원의 테이블 또는 행렬 등은 컴퓨터에서는 배열로서 표현되어 처리



리스트란?

연결 리스트는 각 데이터들을 포인터로 연결하여 관리하는 구조다. 연결 리스트에서는 노드라는 새로운 개념이 나오는데, 각 노드는 데이터를 저장하는 데이터 영역과 다음 데이터가 저장된 노드를 가리키는 포인터 영역으로 구성된다.






배열과 리스트의 차이점!!


즉, 배열은 1,2,3 등의 Index값을통해 해당 주소로 접근을 하지만 리스트의 경우 해당 포인터에서 데이터 까지 링크를 통해서 접근하기때문에 배열의 경우가 데이터처리시에 훨씬 빠르다.


그렇다면 왜 리스트를 사용하는 것일까??


리스트의 가장큰 장점은 데이터의 입력, 삭제가 간편하다는 점이다.

만약, 위 그림에서 3의 데이터가 삭제되게 되면, 1의 포인터영역을 5로 이동시켜주면 된다.


하지만, 배열에서 A[2]가 삭제된다면, A[3]의 위치는 A[2]가 있던 위치로 변경되어야하고, A[4],A[5] ... A[30]의 값 역시 한칸씩 땡겨야하기 때문에, 수만번째주소까지 있는 배열에 A[0]을 삭제하게되면 데이터를 처리하는데 있어 엄청난 시간이 걸리게 된다.





반응형