Javascript로 Stack 구현하기

2024. 2. 12. 15:07·자료구조
class Stack {
  top = null;
  length = 0;

  push(value){
    const newNode = new Node(value); //new Node 생성 후 할당
    newNode.next = this.top; //new Node의 next는 현재 top
    this.top = newNode; //top을 new Node로 재할당
    this.length++;
    return this.length;
  }

  pop(){
    if(!this.top){
      return null;
    }
    this.top = this.top.next; //top은 현재 top의 next
    this.length--;
    return this.length;
  }
  
  top(){
    return this.top.value;
  }
}

class Node{
  next = null;
  constructor(value){
    this.value = value;
  }
}

const stack = new Stack();
stack.push(1);
stack.push(2);
stack.pop();
stack.pop();

 

스택은 뒤로 넣고 뒤로만 뺄 수 있다. 프링글스를 생각하면 된다.

top이라는 것을 통해 스택의 마지막 요소를 알 수있다.

 

시간복잡도는 새로운 값을 넣는데는 O(1), 빼는데 O(1), 제일 위에 값을 확인하는데 O(1)이다.

공간 복잡도는 O(n)이다.

저작자표시 비영리 (새창열림)

'자료구조' 카테고리의 다른 글

연결 리스트(Linked List)  (0) 2024.04.23
BFS, DFS, Tree traversal - Javascript 구현  (1) 2024.02.20
Javascript로 이진탐색트리 구현하기  (1) 2024.02.12
Javascript로 Queue 구현하기  (0) 2024.02.12
Javascript LinkedList 만들기  (0) 2024.02.12
'자료구조' 카테고리의 다른 글
  • BFS, DFS, Tree traversal - Javascript 구현
  • Javascript로 이진탐색트리 구현하기
  • Javascript로 Queue 구현하기
  • Javascript LinkedList 만들기
king_hd
king_hd
웹 개발 공부를 위한 블로그입니다.
king_hd
웹 개발 기록
king_hd
전체
오늘
어제
  • 분류 전체보기
    • HTML
    • CSS
    • JS
    • Typescript
    • React
    • nodejs
    • Redux
    • Git
    • 오류모음
    • Webpack
    • 자료구조
    • 네트워크
    • Electron
    • 배포
    • Docker
    • 프로그래머스

블로그 메뉴

  • 홈

링크

공지사항

인기 글

태그

TAVE
propertykey
const
자바스크립트
let
웹퍼블리셔
4차산업혁명동아리
리덕스
백엔드
docker
리덕스사가
타입스크립트
react
Redux
인증서 자동갱신
mysqld: can't open file: 'mysql.ibd' (errno: 0 - )
env파일 환경변수 인식
https 인증서 발급
코딩테스트
JavaScript
웹개발
프로그래머스
docker mysql workbench 연동하는 법
ec2에 docker 설치
webpack
TypeScript
next.js
프론트엔드
Redux-saga
Hook

최근 댓글

최근 글

hELLO· Designed By정상우.v4.6.0
king_hd
Javascript로 Stack 구현하기
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.