스택은 가장 마지막에 넣은 데이터를 가장 먼저 꺼내는 후입 선출(LIFO - Last In First Out) 방식의 자료구조
// 클래스로 구현
class Stack {
constructor(array = []) {
this.array = array;
}
// 스택에 데이터 넣기
push(value) {
return this.array.push(value);
}
// 스택에서 데이터 꺼내기
pop() {
return this.array.pop();
}
// 전체 스택의 복사본 반환
all() {
return [...this.array];
}
}
const stack = new Stack([1, 2, 3]);
console.log(stack.all()); // [1, 2, 3]
stack.push(4);
console.log(stack.all()); // [1, 2, 3, 4]
stack.pop();
console.log(stack.all()); // [1, 2, 3]
큐는 가장 먼저 넣은 데이터를 가장 먼저 꺼내는 선입 선출(FIFO - First In First Out) 방식의 자료구조
// 클래스로 구현
class Queue {
constructor(array = []) {
this.array = array;
}
// 큐에 데이터 넣기
enqueue(value) {
return this.array.push(value);
}
// 큐에서 데이터 꺼내기
dequeue() {
return this.array.shift();
}
// 전체 큐의 복사본 반환
all() {
return [...this.array];
}
}
const queue = new Queue([1, 2, 3]);
console.log(queue.all()); // [1, 2, 3]
queue.enqueue(4);
console.log(queue.all()); // [1, 2, 3, 4]
queue.dequeue();
console.log(queue.all()); // [2, 3, 4]
개발자로서 성장하는 데 큰 도움이 된 글이었습니다. 감사합니다.