1. 추상자료형이란?
어떤 데이터의 구체적인 구현 방식은 생략한 채, 데이터의 추상적인 형태와 그 데이터를 다루는 방법만을 정해놓은 것
ADT(Abstract Data Type)
2. 스택(Stack)
데이터를 집어넣을 수 있는 선형(linear) 자료
나중에 집어넣은 데이터가 먼저 나옴. LIFO(Last In First Out)
데이터를 집어넣는 push / 데이터를 추출하는 pop / 맨 나중에 집어넣은 데이터를 확인하는 peek
class Stack {
constructor() {
this._arr = [];
}
push(item) {
this._arr.push(item);
}
pop() {
return this._arr.pop();
}
peek() {
return this._arr[this._arr.length - 1];
}
}
const stack = new Stack();
stack.push(1);
stack.push(2);
stack.push(3);
stack.pop(); // 3
3. 큐(Queue)
데이터를 집어넣을 수 있는 선형(linear) 자료
먼저 집어넣은 데이터가 먼저 나옴. FIFO(First In First Out)
데이터를 집어넣는 enqueue (push) / 데이터를 추출하는 dequeue (shift)
class Queue {
constructor() {
this._arr = [];
}
enqueue(item) {
this._arr.push(item);
}
dequeue() {
return this._arr.shift();
}
}
const queue = new Queue();
queue.enqueue(1);
queue.enqueue(2);
queue.enqueue(3);
queue.dequeue(); // 1
'JAVASCRIPT > 문법' 카테고리의 다른 글
[자료구조/알고리즘] 탐욕법 (greedy) 알고리즘 (1) | 2024.03.18 |
---|---|
[자료구조/알고리즘] 동적계획법(DP) (0) | 2024.03.10 |
[자료구조 / 알고리즘] 해시 (0) | 2024.03.03 |
[JAVASCRIPT] 정규식 (0) | 2024.01.27 |
[JAVASCRIPT] replace, replaceAll (0) | 2024.01.07 |