본문 바로가기
JavaScript/JavaScript

JS 스택(Stack)

by 봉이로그 2023. 12. 7.

LIFO

Last In First Out

 

class Stack {
  arr;
  constructor() {
    this.arr = [];
  }

  push(data) {
    this.arr.push(data);
  }

  pop(index) {
    if (index === this.arr.length - 1) { // 꺼내려고하는 index가 배열의 마지막 인덱스인지 확인
    return this.arr.pop(); // 마지막 인덱스면 pop을 사용해서 꺼낸다.
    }
    // 그렇지않을 경우 해당하는 인덱스를 배열의 기존 요소에서 삭제
    let result = this.arr.splice(index, 1);
    return result;
  }

  empty() {
    if (this.arr.length === 0) return true;
    else return false;
  }

  top() { // 가장 마지막에 들어온값을 리턴
    return this.arr[this.arr.legnth - 1];
  }

  bottom() { // 가장 처음으로 들어온값을 리턴
    return this.arr[0];
  }
}