자료구조 스택(stack) 구현하기 (JS)

REASON·2022년 10월 12일
0

자료구조

목록 보기
13/15

스택은 후입선출 LIFO(Last In First Out)구조로 나중에 넣은 데이터가 가장 먼저 나오는 자료구조이다.

보통은 스택의 가장 위에 있는 데이터만 확인하거나 삭제할 수 있다.
구현에 따라 맨 위에 위치하지 않은 데이터도 확인할 수 있게 작성할 수 있겠지만 대체로 가장 위에 있는 데이터만 확인 및 삭제하도록 되어있다.

자바스크립트로 스택 구현하기

구현 사항

  • isEmpty() : 비어있는지 확인(반환값 t/f)
  • push(data) : 스택에 데이터 추가하기
  • pop() : 스택 맨 위의 데이터 삭제하기
  • top() : 스택 맨 위의 데이터 확인하기
  • size() : 스택의 데이터 개수 출력

스택은 배열로 구현할 수 있다.

function Stack(arr = Array()) {
  this.arr = arr;
}

let stk = new Stack();
let stk2 = new Stack(['test', 'test2']);

isEmpty

스택이 비어있는지 확인하는 메서드

Stack.prototype.isEmpty = function(){
  return this.arr.length === 0;
}

현재 배열의 길이가 0인 경우 비어있음을 의미한다

push(data)

스택에 데이터 추가하기

Stack.prototype.push = function (data) {
  this.arr.push(data);
};

pop

스택 가장 위쪽 데이터 삭제하기

Stack.prototype.pop = function () {
  return this.arr.pop();
};

top

스택에 맨 위에 위치한 데이터 출력하기

Stack.prototype.top = function () {
  return this.arr.slice(-1);
};

size

스택의 사이즈 출력

Stack.prototype.size = function () {
  return this.arr.length;
};

스택 테스트 해보기

let stk = new Stack();
stk.push(444);
console.log(stk.size());
console.log(stk.top());
console.log(stk.isEmpty());
console.log(stk.pop());

스택은 연결리스트 구현했을 때보다 훨씬 간단하고 쉬웠던 것 같다.
스택은 배열로 해결할 수 있는 부분이라 직접 구현해서 쓸 일이 있을지는 잘 모르겠다.

0개의 댓글