udemy 에서 Master the Coding interview: Data Structures & Algorithms 강의를 수강한 내용을 정리하는 포스팅입니다.
Array
- 배열은 연속된 메모리내의 데이터의 집합으로 이루어진 자료구조를 의미한다.
- 자바스크립트의 경우 배열의 크기를 미리 정해놓지 않고 사용하여 Dynamic Array 를 사용하는 것으로 볼 수 있다.
- push 나 pop 이 아닌 insert 나 delete 작업의 경우 시간 복잡도가 O(n) 이다.
-인덱스를 알면 원하는 정보에 빠르게 접근가능하다.
-자바스크립트의 배열은 객체이며 따라서 클래스를 이용해 스스로 구현할 수 도 있다.
class MyArray {
constructor() {
this.length = 0;
this.data = {};
}
get(index) {
return this.data[index];
}
push(item) {
this.data[this.length] = item;
this.length++;
return this.data;
}
pop() {
const lastItem = this.data[this.length - 1];
delete this.data[this.length - 1];
this.length--;
return lastItem;
}
deleteAtIndex(index) {
const item = this.data[index];
this.shiftItems(index);
return item;
}
shiftItems(index) {
for (let i = index; i < this.length - 1; i++) {
this.data[i] = this.data[i + 1];
}
console.log(this.data[this.length - 1]);
delete this.data[this.length - 1];
this.length--;
}
}
- 배열자료구조의 장단점은 아래와 같다.
'TIL > ZTM Data Structures and Algorithms' 카테고리의 다른 글
ZTM Data Structures & Algorithms - Graph (0) | 2021.08.28 |
---|---|
ZTM Data Structures & Algorithms - Tree (0) | 2021.08.28 |
ZTM Data Structures & Algorithms - Stacks & Queue (0) | 2021.08.22 |
ZTM Data Structures & Algorithms - Linked List (0) | 2021.08.22 |
ZTM Data Structures & Algorithms - Hash Tables (0) | 2021.07.26 |
댓글