데이터 스트럭쳐란?(DATA STRUCTURE)

임쿠쿠·2020년 8월 23일
0

데이터 스트럭쳐란?

  1. 현실을 프로그래밍적으로 표현하는 것
    즉, 데이터스트럭쳐를 이해함으로써 프로그래밍 구현 시 어떠한 구조를 따를것인지 결정.
    ex) 지도 api 등 구현 시 Graph활용할 수 있다.

    "프로그램이란 데이터를 표현하고, 그렇게 표현된 데이터를 처리하는 것"

  2. 큰 데이터를 효율적으로 관리 하는 것
    데이터가 커질 수록 많아진 데이터를 효율적으로 관리하기 위한 방법중 하나가 데이타스트럭쳐이다.

데이터스트럭쳐를 이해하기 어려운 이유

  • 실무 경험이 없어 공감이 안되고 이해하기 힘들다.
    => 공감이 안되니 의심을 하게되고 자신감이 없어진다.

Array

데이터가 많이지면 그룹 관리의 필요성이 증가합니다. array는 데이터를 메모리에 저장하며, 각 element는 고정된 숫자(index)를 갖게 됩니다.

  • 여러 데이터를 하나의 이름으로 그룹핑해서 관리하기 위한 데이터스트럭쳐
  • 배열의 저장된 값들을 반복문을 통해 value를 꺼내서 여러가지 데이터로 변환 가능함

Array의 이점

  • 쉬운 생성 및 사용
  • 복잡한 데이터 구조를 위한 기본적인 구성 요소

Array의 단점

  • 고정된 크기
  • 데이터 삽입, 삭제 시 배열의 재정렬 필요

Array 적용

  • 기초적인 spreadsheets로 활용
  • hash table과 같은 복잡한 구조 내에서 활용

2.리스트(list)
데이터가 순서데로 저장된다. 중복을 허용한다.

array vs list
array는 index를 가지고 있어 해당 데이터를 바로 찾아가기 쉬움. 반면 list는 데이터간의 연결을 중요시 여기기 때문에 찾아가는 과정이 오래걸림.

또한 데이터 추가 삭제시 배열은 해당인덱스를 덮어쓰거나 빈배열로 두게 됨. 반면 리스트는 추가시 그자리의 데이터를 한칸 뒤로 밀리고 삭제시에는 앞으로 땡김.

리스트의 기능
처음, 끝, 중간에 엘리먼트를 추가/삭제하는 기능이 반드시 있어야 함. 그리고 데이터 추가 삭제 시 데이터를 밀고 채우고 할 수 있어야함.

자바스크립트의 경우
splice를 이용하여 리스트 구현 가능
-> 즉 자바스크립트는 배열이 리스트 이기도 하다.

결론적으로 array list는 데이터 추가/삭제가 오래 걸리는 반면 조회는 빠르다.
linked list는 추가/삭제가 빠르고 인덱스 조회가 느리다.
->서로간의 trade-off가 존재한다.

profile
Pay it forward

0개의 댓글