최대 1 분 소요

List 란?

  • 자료구조
    • 선형적인 자료구조
    • 데이터를 일렬로 늘여 놓은 형태
    • 데이터간에 순서가 존재함
  • 연산

    • 데이터 삽입하기
    • 데이터 삭제하기
    • 데이터 탐색하기
  • 종류

    • ArrayList
    • LinkedList
      • Single Linked List
      • Double Linked List

ArrayLIst

  • 배열 기반의 리스트 -> 인덱스가 존재함
  • 메모리 공간을 연속적으로 사용
  • 컴퓨터에서 접근하는 속도가 빠름
  • 고정된 공간을 할당 받음
  • 중간에 데이터를 삽입할 경우 데이터를 옮겨줘야함
    • 예 1,2,3,4,5 가 있고 인덱스 2번에 5를 넣을 경우
    • “3” 이 “5로”바뀌므로 3,4,5를 뒤로 옮겨줘야함
    • 삭제도 마찬가지 (뒤에 있는 데이터를 앞으로 옮겨줘야함)
    • 시간복잡도는 O(N)
    • 데이터 갯수에 상관없이 인덱스로 데이터를 가져오기 때문에 데이터를 갖고 오는 속도는 빠름

LinkedList

  • 실제 컴퓨터 메모리상에서 물리적으로 연속적인 공간을 차지하고 있지 않음
  • 데이터간의 이동자체에 속도가 더 걸림

LinkedList vs Array 비교

  LinkedList ArrayList
추가 O(N) O(1),O(N)
삽입 O(N) O(N)
삭제 O(1) O(N)
검색 O(N) O(1)
  • 객체 Node는 내부에 data와 next 변수를 갖고 있음
    • data는 노드의 값 next는 다음 노드를 가리키는 참조값이다.

댓글남기기