Javascript Stack [알고리즘]

cptkuk91·2023년 2월 15일
0

FC

목록 보기
16/18
post-thumbnail

Stack

제한적으로 접근할 수 있는 나열 구조. LIFO(Last-In-First-Out) 자료를 밀어 넣는다고해서 Push, 넣어둔 자료를 뺀다고 해서 Pop이라고 한다.

class Stack {
    constructor(){
        this.arr = [];
    }

    push(data){
        this.arr.push(data);
    }
    
    pop(index){
    	if(index === this.arr.length - 1){
        	return this.arr.pop();
        }
        let result = this.arr.splice(index, 1);
		return result;
	}
    
    empty(){
    	if(this.arr.length === 0){
        	return true;
        } else {
        	return false;
        }
    }
    
    // 가장 마지막에 들어온 숫자.
    top(){
    	return this.arr[this.arr.length - 1];
    }
    
    // 가장 먼저 들어온 숫자.
    bottom(){
    	return this.arr[0];
    }
}

let result = new Stack();
result.push(1);
result.push(2);
result.push(3);
result.push(4);

console.log(result.arr[0]); // 1
let resultPop = result.pop(2);

console.log(result);

console.log(result.top());
console.log(result.bottom());

Queue

Stack과 반대 개념이다. 나중에 넣은 데이터가 먼저 나온다. FIFO(First-In-First-Out)

profile
메일은 매일 확인하고 있습니다. 궁금하신 부분이나 틀린 부분에 대한 지적사항이 있으시다면 언제든 편하게 연락 부탁드려요 :)

0개의 댓글