[JS] 자료구조에서 리스트와 배열의 차이

김현수·2023년 11월 20일
0

자료구조

목록 보기
3/8


🖍️ 자료구조의 리스트와 배열


배열

  • 고정 크기

    • 많은 프로그래밍 언어에서 배열의 크기는 고정
      • 일단 선언되면 저장할 수 있는 요소 수가 설정되며 변경 불가능
    • Javascript 배열은 동적, 크기가 늘어나거나 줄어들 수 있음 (예외)
  • 연속 메모리 할당

    • 배열은 연속된 블록에 메모리 할당
    • 각 요소는 메모리의 다른 요소 바로 옆에 저장
    • 요소에 대한 효율적인 인덱스 기반 액세스 가능
  • 동종 데이터 유형

    • 일반적인 배열은 동일한 데이터 유형의 요소 저장
    • 각 요소가 동일한 양의 메모리 차지
    • Javascript 제외, 다양한 요소 저장 가능
  • 직접 액세스

    • 인덱스를 통해 해당 요소에 대한 직접 액세스
  • 액세스 효율성

    • 메모리 레이아웃으로 인해 인덱스 기반 요소에 자주 액세스 해야할 때 매우 효율적


리스트

  • 고정 크기

    • 동적으로 늘어나가나 줄어들 수 있어 저장 측면에서 더 많은 유연성 제공
    • 사이즈 미리 선언 필요 X
  • 비연속 메모리 할당

    • 리스트에서 메모리는 각 요소에 개별적으로 할당
    • 반드시 연속된 블록에 할당 불필요
    • 각 요소는 자체 데이터와 다음 요소에 대한 참조를 저장
  • 이기종 데이터 유형

    • 리스트는 일반적으로 다양한 유형의 요소를 저장 가능
    • 특정 구현 및 프로그래밍 언어에 따라 달라짐
  • 간접 액세스

    • 목록의 요소에 액세스하려면 처음부터 원하는 위치까지 목록 순회 가능
  • 삽입 및 삭제의 효율성

    • 목록은 특히 데이터 구조의 끝이 아닌 위치에서 삽입과 삭제가 자주 발생하는 작업 효율적

인덱스를 사용하여 요소에 빠르게 액세스하고
요소 수가 알려지고 상대적으로 일정한 경우 배열

크기를 동적으로 변경 가능한 데이터 구조가 필요하거나
삽입 및 삭제가 많을 것으로 예상되는 경우 리스트

profile
일단 한다

0개의 댓글