[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에서는 스택을 배열을 이용하여 간단히 구현할 수 있습니다. 스택은 데이터를 임시로 저장하고 필요할 때 나중에 꺼내 사용해야 하는 상황에 유용합니다.

더 많은 자료 구조에 대해서는 관련 자료를 참고하시기 바랍니다.

자료 구조 및 알고리즘 in JavaScript