JS) stack,Queue

백준우·2021년 10월 16일
0

JavaScript & TypeScript

목록 보기
11/15
post-thumbnail

1. stack

2. Queue


1. stack

  • 데이터가 순서대로 쌓이는 구조
  • 가장 먼저 들어간 데이터가 가장 나중에 나온다.
  • 스택은 Last in First Out으로 가장 최근에 추가된 항목은 가장 나중에 추가된다.
  • 프링글스 통으로 생각할것
  • Stack의 사용예
    !)웹브라우저 방문기록
    !!)실행취소(ctrl + Z)
    !!!)역순 문자열만들기

EX)

//스택을 만드는 클래스 
class Makestack {
  constructor() {
    this.storage = {};
    this.top = 0; //스택을 분별하기 위한 키값
  } 

  push(element) {
    this.storage[this.top] = element;
    this.top++; //스택이 추가되면 카운트가 하나씩 없어짐
  }	
  pop() {
    if (Object.keys(this.storage).length === 0) {
      return 'none stack'
    }

    const result = this.storage[Object.keys(this.storage).length-1];
    delete this.storage[Object.keys(this.storage).length-1];
    this.top--;//스택이 삭제되면 카운트도 -1되어 다음 스택의 카운트에 영향을 주지 않아야함
    return result;
  }
}

2. Queue

  • 데이터가 순서대로 쌓이는 구조
  • 입력된 데이터가 먼저 나오는 형식
  • stack과 다른 First in Fist Out형태를 이룬다.

  • Queue의 사용예
    !)데이터를 처리하는곳에 처리할수 있을만큼의 데이터만 전달

EX)

//큐을 만드는 클래스 
class MakeQueue {
  constructor(){
    this.storage =[]
  }

  inputdata(element){
    this.storage.push(element)//맨끝에 데이터가 추가된다.
  }

  outputdata(){
    this.storage.shift//가장 앞의 데이터가 빠져나간다. 
  }
}
profile
이게 되네?

0개의 댓글