[JS|자료구조] 자바스크립트(javascript)의 Stack(스택) 알아보기

2024. 1. 6. 19:00·💾 자료구조 & 알고리즘/이론 정리

 

 

- Stack이란?

LIFO (Last In First Out)
가장 나중에 들어온 데이터가 가장 먼저 나가는 형태.
즉, 한 방향으로만 데이터를 넣고 뺄 수 있다.

 

한 방향으로만 데이터를 삽입/삭제할 수 있기에 그 복잡도 또한 O(1)이다.

새로 삽입한 데이터의 주소를 top라는 변수에 넣고, 삭제할 때 top가 가리키는 주소에 저장되어있는 변수를 삭제하면 된다.

 


- Stack의 ADT 연산 정의

0. Stack의 기본 구조

function stack(array = new Array()) {
  this.arr = array
  this.top = 0
}

1. Stack의 데이터 삽입

stack.prototype.push = function (item) {
  return (this.arr[this.top++] = item)
}

2. Stack의 데이터 삭제

stack.prototype.pop = function () {
  if (this.top <= 0) return null
  return this.arr[--this.top]
}

3. Stack이 비어있는지 확인

stack.prototype.isEmpty = function () {
  return stack.length === 0
}

4. Stack 전체 코드 

function stack(array = new Array()) {
  this.arr = array
  this.top = 0
}

stack.prototype.push = function (item) {
  return (this.arr[this.top++] = item)
}

stack.prototype.pop = function () {
  if (this.top <= 0) return null
  return this.arr[--this.top]
}

stack.prototype.isEmpty = function () {
  return stack.length === 0
}

let stack = new stack()
stack.push(1)
stack.push(2)
console.log(stack.pop())
stack.push(3)
console.log(stack.pop())
console.log(stack.isEmpty())
console.log(stack.pop())
console.log(stack.isEmpty())
'💾 자료구조 & 알고리즘/이론 정리' 카테고리의 다른 글
  • [JS|알고리즘] 탐욕 알고리즘?! (그리디 알고리즘, Greedy Algorithm)
  • [JS|자료구조] 자바스크립트(javascript)의 Queue(큐) 알아보기
  • [JS|자료구조] 자바스크립트(javascript)의 Linked List(연결리스트) 알아보기
  • [JS|자료구조] 자바스크립트(javascript)의 Array(배열) 알아보기
상심한 개발자
상심한 개발자
  • 상심한 개발자
    상심한 개발자
    상심한 개발자
  • 전체
    오늘
    어제
    • 상심한 개발자 (36)
      • 📝 공부 기록 (4)
        • Javascript (3)
        • CS (1)
        • NodeJS (0)
      • 💻 개발 기록 (1)
        • Sring, 스터디 모집 및 관리 기능 통합 서비.. (1)
      • 💾 자료구조 & 알고리즘 (26)
        • 이론 정리 (13)
        • 문제 풀이 (13)
      • 📝 후기 및 회고록 (4)
      • etc. (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    JavaScript
    삽질기록
    자료구조
    배열
    array
    블로그
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
상심한 개발자
[JS|자료구조] 자바스크립트(javascript)의 Stack(스택) 알아보기
상단으로

티스토리툴바