Stack

byungju0624·2020년 10월 27일
0
post-thumbnail

Stack이란?

-> 나중에 저장한 데이터가 나중에 나오는 LIFO(Last In Front out)의 구조를 갖는다.

-> 거꾸로 정렬된 데이터를 꺼내쓰고 싶을 때 유용하다.

Stack이 지원하는 4가지 기능

1. pop()
-> 맨 마지막에 넣은 데이터를 가져오면서 지우는 기능
2. push()
-> 새로운 데이터를 맨 위에 쌓아올리는 기능
3. peek()
-> 맨 마지막 데이터를 보는 기능
4. isEmpty()
-> Stack에 데이터가 있는 지 없는 지 확인하는 기능

Stack 구현해보기

//스택 클래스 만들기 
class Stack {
    constructor() {
        this.storage = {};
        this.top = 0;
}
//사이즈
    size() {
    if(this.top < 0) {
        return 0; //마이너스의 값이 나올 수 있기때문에 0보다 작으면 0을 리턴해주는 조건문을 만들자
        }
    return this.top;    
    }


//stack에 쌓기
    push(element) {
        this.storage[this.top] = element;
        this.top++;
    }
//stack에서 빼기
    pop() {
    	let removeEl = this.storage[this.top - 1];// 이렇게 선언한 이유는 내가 어떤 요소를 지웠는지 확인하기 위해서!!
        delete this.storage[this.top - 1]
        this.top--;
        return removeEl;
    
    }
};

0개의 댓글