[자료구조] List

생성일:

최대 1 분 소요

생활코딩 DataStructure 강의 정리

List의 Key Point!!

  1. 순서가 있다
  2. 중복을 허용한다

Array와 List의 차이점

Array

  • 데이터의 저장 위치, 즉 Index가 중요하다

List

  • 엘리먼트(데이터)의 순서가 더 중요하다

예) 데이터를 추가하는 경우
https://s3.ap-northeast-2.amazonaws.com/opentutorials-user-file/module/1335/2881.png
이러한 데이터가 있을 때,

https://s3.ap-northeast-2.amazonaws.com/opentutorials-user-file/module/1335/2882.png

  • 배열의 경우 3번 인덱스에 데이터를 추가한다면 원본의 데이터를 덮어쓰게 된다.

https://s3.ap-northeast-2.amazonaws.com/opentutorials-user-file/module/1335/2883.png

  • 리스트의 경우 기존 데이터를 한 칸 뒤로 밀고(인덱스 3번의 값이 4번으로 이동), 빈공간에 데이터를 추가한다.(새로운 인덱스 3번이 됨)

예) 데이터를 삭제하는 경우

배열데이터삭제

  • 배열의 경우 데이터를 삭제할 시 비어있는 상태를 유지한다.
    • 인덱스가 변하지 않는다 ⇒ 인덱스는 값에 대한 유일무이한 식별자이다!
  • 리스트는 3번 데이터가 사라지면 4번 데이터가 앞으로 전진한다

List의 장점

데이터가 연속적이다. 즉, 비어있는 데이터가 없다

⇒ for문 등을 통해 순회 처리를 하는 경우 데이터가 비어 있는지 체크할 필요가 없다!

  • Array는 1.순회하는 과정에서 빈 공간을 체크해야 한다 && 2.데이터를 삭제하는 경우 빈 공간이 남아 있어서 메모리 차지가 크다

List의 기능

  • 처음, 끝, 중간에 엘리먼트를 추가 / 삭제하는 기능
  • 데이터가 List에 있는지 없는지 체크하는 기능
  • 리스트의 모든 데이터에 접근할 수 있는 기능

언어별 비교

  • C : 리스트를 지원하지 않는다. → 직접 만들거나 라이브러리를 사용해야 함
  • JavaScript : 배열이 리스트
  • 파이썬 : 리스트가 배열
  • JAVA : 배열과 리스트를 독립적으로 지원한다.
    • List를 두 개 지원 (LinkedList / ArrayList)

    https://s3.ap-northeast-2.amazonaws.com/opentutorials-user-file/module/1335/2885.png


+) 컨셉이 중요하다

각각의 자료구조의 중심 컨셉이 무엇인지 파악하는 것이 중요하다!🌟

댓글남기기