Data Structure, 자료 구조는
Js 에서는 Array, Python 에서는 list를 주로 사용.
가장 기초적이고 단순하면서 가장 많이 쓰이는 자료구조.
순차적으로 (ordered)데이터를 저장.
자료구조에 저장하는 data는 element(요소)라고 한다.
array는 순차적으로 저장할때 사용하고, 순서가 상관이 없을지라도 서료 연결된 데이터들을 저장할 때 주로 사용함.
element는 insertion 순서대로 삽입. 가장 마지막에 삽입한 것은 array의 마지막에 저장됨.
이미 생성된 리스트도 수정 가능 (mutable)
동일한 값도 여러번 삽입 가능
multi-dimensional Array : Array 내 element로 array가 존재할 수 있음 (ex. [[1,2],[3,4,5],[6,7]])
1) 데이터의 추가 및 삭제
순차적으로 데이터를 저장하므로 element를 더하거나 지우면 하나씩 뒤로 밀거나 앞으로 당겨야 함.
고로 operation이 자꾸 일어나게 됨.
-> 자주 삭제/추가되는 데이터에는 부적합 한 방식.
2) Resizing
처음 생성시 어느정도 memory를 할당 함. (pre-allocation)
만일 메모리가 다 찼을 시, resizing 필요. (메모리 할당이 다시 필요함.)
새로 할당되는 메모리도 순차적이어야 하므로 operation이 오래걸림.
-> 사이즈예측이 잘 안되는 경우엔 부적절.
순차적 데이터 ex.주식가격
다차원 데이터 (multi-dimensional array)
특정 요소를 빨리 불러와야 할 때
테이터 사이즈 변화가 적을 때
요소의 삭제/추가가 잦지 않을때.
Python 에서만 지원.
list 와 비슷한 순열 자료구조
2~3개 정도의 소규모 데이터 저장시에 적합
1개 이상의 값을 return하고싶을 때 적합
간단한 값을 빨리 표현할 때 ex.좌표데이터
소규모 데이터이므로 메모리가 적고 빠름.
key : value 형식이 아니므로 데이터가 무슨 의미인지 불명확함.
-> 데이터의 문맥을 읽고 파악해야함 (직관적이지 않음)