본문 바로가기
자료구조_알고리즘

자료구조) 자료구조 - Stack

by nomfang 2022. 3. 18.
728x90
반응형

stack

스택은 '쌓다' 라는 뜻으로 데이터를 순서대로 쌓는 구조
데이터를 쌓고 위에 쌓인 데이터 부터 사용한다
선입 후출(FILO - First In Last Out)

stack의 사용 예

브라우저의 뒤로가기, 앞으로가기 기능을 2개의 스택을 이용해 구현한다
prevStack - 뒤로가기 버튼을 누르면 스택 내 쌓인 페이지 중 가장 최근 페이지로 이동 후 현재 페이지를 nextStack에 저장
현제 페이지
nextStack - 앞으로 가기 버튼을 누르면 스택 내 쌓인 페이지 중 가장 최근 페이지로 이동 후 현재 페이지를 prevStack에 저장

class를 통한 stack 구현

class Stack {
  constructor() {
    this.storage = {};
    this.top = 0; 
  }

  size() {
    return this.top;
  }

  push(element) {
    this.storage[this.top] = element;
    this.top += 1;
  }

  pop() {
    if (this.top == 0) {
      return;
    }

    const result = this.storage[this.top-1];
    delete this.storage[this.top-1];
    this.top -= 1;

    return result;
  }
}

배열(array)을 stack으로 사용하기

// const array = new Array() 미리 정의된 Array 객체를 사용합니다.
const stack = []; 

stack.push(1); // [1]
stack.push(2); // [1, 2]
stack.push(3); // [1, 2, 3]
stack.push(4); // [1, 2, 3, 4]
stack.push(5); // [1, 2, 3, 4, 5]

console.log(stack); // [1, 2, 3, 4, 5]

stack.pop(); // [1, 2, 3, 4]
stack.pop(); // [1, 2, 3]

console.log(stack); // [1, 2, 3]
반응형

댓글