본문 바로가기
개발공부 일지/코테

스택(Stack) - 자바스크립트, JS

by Box Cat 2023. 7. 15.
728x90
반응형

 

 
class Stack {
    constructor() {
      this.items = [];
    }
 
    // 스택에 요소 추가
    push(element) {
      this.items.push(element);
    }
 
    // 스택에서 가장 위의 요소 제거 후 반환
    pop() {
      if (this.isEmpty()) {
        return "Stack is empty.";
      }
      return this.items.pop();
    }
 
    // 스택의 가장 위의 요소 반환 (제거하지 않음)
    peek() {
      if (this.isEmpty()) {
        return "Stack is empty.";
      }
      return this.items[this.items.length - 1];
    }
 
    // 스택이 비어있는지 여부 확인
    isEmpty() {
      return this.items.length === 0;
    }
 
    // 스택의 크기 반환
    size() {
      return this.items.length;
    }
 
    // 스택의 모든 요소 출력
    print() {
      console.log(this.items);
    }
  }
 
  // 스택 사용 예시
  const stack = new Stack();
  stack.push(1);
  stack.push(2);
  stack.push(3);
 
  console.log(stack.peek()); // 3
  console.log(stack.pop()); // 3
  console.log(stack.size()); // 2
  stack.print(); // [1, 2]
728x90
반응형

댓글