티스토리 뷰

Algorithm

자료구조 Stack in JavaScript

Kyeongti 2021. 11. 7. 14:45

JavaScript로 Stack구현

자바스크립트로 Stack을 구현해 보았다.

Stack개념을 떠올리면 먼저 배열을 떠올릴 수 있다.

스택은 Last in First out 구조로 되어있다. 즉 가장 최근 자료는 꼭대기에 있으며, 가장 처음 자료는 맨 밑바닥에 있다.

 

박스를 차례대로 차곡차곡 쌓는다고 생각하면 이해 하기 수월하다.

가장 마지막에 쌓은 박스가 가장 위에 있을 것이며, 맨 밑바닥에 있는  박스가 처음 놓은 박스이다.

 

cf) shift, unshift는 stack과 관련없이 연습으로 작성해 보았습니다.

//stack
const Stack = (function () {
  function Stack() {
    this.top = null;
    this.count = 0;
  }

  function Node(data) {
    this.data = data;
    this.next = null;
  }

  Stack.prototype.push = function(data) {
    const node = new Node(data);
    node.next = this.top;
    this.top = node;
    this.count++
    return this.count;
  }

  Stack.prototype.pop = function () {
    if (!this.top) {
      return false;
    }
    const data = this.top.data;
    this.top = this.top.next;
    this.count--;
    return data;
  }

  Stack.prototype.shift = function () {
    let top = this.top;
    let secondNode;
    while(top.next) {
      secondNode = top;
      top = top.next;
    }
    secondNode.next = null;
  }

  Stack.prototype.unshift = function (data) {
    let top = this.top;
    const node = new Node(data);
    let firstNode;
    while(top) {
      firstNode = top;
      top = top.next;
    }
    firstNode.next = node;
  }
  return Stack;
})();

const stack = new Stack();
stack.push(1);
stack.push(2);
stack.push(4);
stack.push(5);
stack.shift()
stack.pop();
stack.unshift(11);

참고 및 출처 https://www.zerocho.com/category/Algorithm/post/5800b79e1dfb250015c38db6

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함