자바스크립트에서의 스택과 큐 구현하기 🔗
웹 개발을 배우는 여러분, 자바스크립트에서 데이터 구조를 다루는 것은 매우 중요합니다. 오늘은 두 가지 기본적인 데이터 구조인 스택과 큐를 자바스크립트로 어떻게 구현하는지 알아보겠습니다. 복잡한 용어는 최대한 배제하고, 이해하기 쉽게 설명할게요!
스택(Stack)
스택은 말 그대로 쌓아 올린 더미입니다. 마지막에 넣은 데이터를 가장 먼저 꺼내는 LIFO(Last In, First Out) 방식을 따릅니다. 책을 쌓아놓고 가장 위에 있는 책을 먼저 꺼내는 것을 생각하면 쉽죠?
자바스크립트에서 스택을 구현해보겠습니다. 배열을 사용해서 간단하게 만들 수 있어요.
class Stack {
constructor() {
this.items = [];
}
push(item) {
this.items.push(item);
}
pop() {
if (this.items.length === 0) {
return "Stack is empty";
}
return this.items.pop();
}
peek() {
return this.items[this.items.length - 1];
}
isEmpty() {
return this.items.length === 0;
}
}
// 사용 예시
const stack = new Stack();
stack.push(1);
stack.push(2);
console.log(stack.peek()); // 2
console.log(stack.pop()); // 2
console.log(stack.pop()); // 1
큐(Queue)
큐는 줄을 서는 것과 같은 구조입니다. 처음에 들어온 데이터가 가장 먼저 나가는 FIFO(First In, First Out) 방식을 따릅니다. 마트 계산대에서 줄을 서서 기다리는 것을 생각하면 돼요.
자바스크립트로 큐를 구현해봅시다. 여기서도 배열을 활용할 수 있습니다.
class Queue {
constructor() {
this.items = [];
}
enqueue(item) {
this.items.push(item);
}
dequeue() {
if (this.items.length === 0) {
return "Queue is empty";
}
return this.items.shift();
}
front() {
if (this.items.length === 0) {
return "Queue is empty";
}
return this.items[0];
}
isEmpty() {
return this.items.length === 0;
}
}
// 사용 예시
const queue = new Queue();
queue.enqueue(1);
queue.enqueue(2);
console.log(queue.front()); // 1
console.log(queue.dequeue()); // 1
console.log(queue.dequeue()); // 2
여기서 보여드린 스택과 큐의 구현은 기본적인 예시입니다. 실제 프로젝트에서는 더 많은 기능과 예외 처리가 필요할 수 있습니다. 하지만 이 기본적인 구조를 이해하는 것이 중요하며, 여러분이 웹 개발을 배우는 데 큰 도움이 될 것입니다.
이제 여러분도 자바스크립트를 사용하여 데이터 구조를 다루는 첫걸음을 뗐습니다. 스택과 큐를 활용하여 다양한 문제를 해결해보세요!