[javascript] 스택 (Stack) 데이터 구조
이번 포스팅에서는 JavaScript에서의 스택 (Stack) 데이터 구조에 대해 알아보겠습니다.
스택 (Stack)이란?
스택은 후입선출 (Last-In-First-Out, LIFO) 원칙을 따르는 추상적인 자료 구조입니다. 스택에 데이터를 추가하는 것을 푸시 (push)라고 하고, 데이터를 꺼내는 것을 팝 (pop)이라고 합니다.
JavaScript에서의 스택 (Stack) 구현
JavaScript에서는 배열을 사용하여 스택을 구현할 수 있습니다.
// 스택 클래스 정의
class Stack {
constructor() {
this.items = [];
}
// 스택에 데이터 추가
push(element) {
this.items.push(element);
}
// 스택에서 데이터 꺼내기
pop() {
if (this.items.length === 0) {
return "스택이 비어 있습니다.";
}
return this.items.pop();
}
// 스택의 맨 위 데이터 확인
peek() {
return this.items[this.items.length - 1];
}
// 스택이 비어 있는지 확인
isEmpty() {
return this.items.length === 0;
}
// 스택의 길이 확인
size() {
return this.items.length;
}
}
// 스택 클래스 활용 예시
const stack = new Stack();
stack.push(1);
stack.push(2);
stack.push(3);
console.log(stack.pop()); // 3
console.log(stack.peek()); // 2
console.log(stack.isEmpty()); // false
console.log(stack.size()); // 2
정리
JavaScript에서는 스택을 배열을 이용하여 간단히 구현할 수 있습니다. 스택은 데이터를 임시로 저장하고 필요할 때 나중에 꺼내 사용해야 하는 상황에 유용합니다.
더 많은 자료 구조에 대해서는 관련 자료를 참고하시기 바랍니다.