본문 바로가기
  • 오늘도 한걸음. 수고많았어요.^^
  • 조금씩 꾸준히 오래 가자.ㅎ
IT기술/자료구조

자료구조 - 리스트(list)

by 미노드 2022. 9. 12.

List는 

데이터가 순서대로 저장되며, 중복 데이터 저장을 허용한다.
이는 배열과 매우 비슷하다.

배열은 데이터가 저장된 인덱스, 주소가 중요하며 인덱스, 주소를 가지고 해당 위치로 바로 찾아가 데이터를 볼 수 있다.

그러나 리스트는 인덱스 보다 순서를 더 중요시한다.

차이점을 예시로 들어보면 다음과 같다.
------------------------------------------------------------------------------------------------------------------
데이터가 [10, 20, 30, 40] 일 경우 배열에서 50을 추가한다면,

a[3] = 50 으로 해당 위치에서 값을 덮어쓰거나, a[4] = 50을 추가해야 한다..

그러나 리스트는 40의 값을 밀어내고 50을 넣는다. [10, 20, 30, 50, 40]
또는 제일 뒷자리에 추가한다. [10, 20, 30, 40, 50]
------------------------------------------------------------------------------------------------------------------
만일 데이터 40을 삭제한다면 [10, 20, 30, 40, 50]

배열에서는 [10, 20, 30,   , 50] 이 될 것이고

리스트에선 [10, 20, 30, 50] 이 된다. 인덱스도 당겨진다.
------------------------------------------------------------------------------------------------------------------

이런식이다보니 데이터를 동적으로 다뤄야 할 경우 배열보단 리스트가 유리할 수 있다.

리스트에선 처음, 중간, 끝 엘리먼트를 추가/삭제 하는 기능을 제공한다.

C - List 지원안함

JavaScript(배열과 리스트를 거의 같게 사용함) - splice 

Python - 배열을 제공하지 않고, 리스트를 제공함.

Java - ArrayList 로 사용함. 
         - LinkedList도 간혹 사용함.

 ArrayList를 사용하는 걸 보면 배열과 리스트는 상반되는 개념 보단 비슷한 개념으로 봐야한다.
그렇지만 같은건 아니다. 그러므로 해깔린다.
이에 대해선 별도로 정리한다.
LinkedList도 마찬가지다

 

'IT기술 > 자료구조' 카테고리의 다른 글

자료구조 - LinkedList  (0) 2022.09.12
자료구조 - Array List  (0) 2022.09.12
자료구조 - 배열(Array)  (0) 2022.09.12
자료구조의 특징  (0) 2022.09.12
자료구조란?  (0) 2022.09.12