JAVASCRIPT/문법
[자료구조 / 알고리즘] 스택, 큐
예글
2024. 3. 4. 16:10
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