스택(Stack)

YJS·2023년 9월 3일
0
post-thumbnail

🤓오늘의 공부 주제: 스택🤓

스택이란?
스택(stack)은 말 그대로 '쌓아놓은 더미'를 뜻한다.

먼저 들어간 데이터가 나중에 나오는 규칙. First In Last Out = Last In First Out = LIFO

연결리스트로 스텍 구현하려면 삽입시도 헤드에 삭제시도 헤드를 삭제하면 됨. 한쪽으로만 데이터 삽입 및 삭제하면 됨.

import { LinkedList } from './LinkedList.mjs';

class Stack{
    constructor(){
        this.list = new LinkedList();
    }
	
  	//데이터 삽입
    push(data){
      	//항상 맨 처음에 삽입
        this.list.insertAt(0, data);
    }
	
  	//데이터 추출
    pop(){
        try{
          	//항상 맨 처음 노드를 삭제
            return this.list.deleteAt(0);
        } catch(e){
          	//index 범위를 넘어가면 오류가 발생하니까 null을 리턴
            return null;
        }
    }
	
  	//가장 위에 있는 데이터 가져오기
    peek(){
        return this.list.getNodeAt(0);
    }
	
  	//스택이 비었는지 확인. count의 개수가 0이면 빈것.
    isEmpty(){
        return (this.list.count == 0);
    }
}

export { Stack };
profile
우당탕탕 개발 일기

0개의 댓글