Algorithm/Linear

[Linear] Javascript로 Stack과 Queue 구현하기

Juwon2106 2022. 2. 19. 19:40
728x90

 

이번 포스팅의 주제는 Javascript로 

Stack ( LIFO : 후입선출)

Queue ( FIFO : 선입선출 )

자료구조 배열 구현하기 입니다.

소스코드 예제와 함께 구현해 보겠습니다.

 

 

각각 메소드는 4개로 구성하였습니다.

 

push : Stack( Queue )의 가장 위의 인덱스에 요소 추가

isEmpty : Stack( Queue )이 빈 배열인지 진리 여부 반환

pop : Stack의 가장 윗 부분( 마지막 인덱스 ) 반환, Queue의 경우 가장 첫 부분 ( 시작 인덱스 ) 반환

size : Stack( Queue ) 배열의 크기 반환

 

Stack의 예시코드 입니다.

class Stack{
    
    constructor(){
    	// stack을 구현할 배열 초기화
        this._arr = [];
    }
    
    push( element ){
    	this._arr.push(element)
    }
    
    isEmpty(){
    	if( this._arr.length === 0){
        	return true
        }
        return false
    }
    
    pop(){
    	return this._arr[this._arr.length - 1]
    }
    
    size(){
    	return this._arr.length
    }
    
}

const stack = new Stack()

const element = 1

stack.push( element )

console.log( stack.isEmpty() )

console.log( stack.pop() )

console.log( stack.size() )

출력 결과

간단한 Javascript class로 구현하였습니다.

 

다음은 Queue입니다.

class Queue{
    
    constructor(){
    	// queue 배열  초기화
        this._arr = [];
    }
    
    push( element ){
    	this._arr.push(element)
    }
    
    isEmpty(){
    	if( this._arr.length === 0){
        	return true
        }
        return false
    }
    
    pop(){
    	return this._arr[0]
    }
    
    size(){
    	return this._arr.length
    }
    
}

const queue = new Queue()

const element = 1

queue.push( element )

console.log( queue.isEmpty() )

console.log( queue.pop() )

console.log( queue.size() )

출력 결과

Javascript class와 4가지 메서드로 간단하게 stack과 queue를 구현해보았습니다.

728x90