본문 바로가기
교육후 개인공부/알고리즘

[알고리즘] 큐(queue)

by 뭉지야 2024. 1. 28.
728x90

큐(queue)

-리스트의 일종으로 끝부분으로 데이터가 삽입되고 앞부분에서는 데이터가 삭제되는 자료구조다.

-선입선출 First-in First-out , FIFO

-삽입하는 동작이 enqueue(인큐), 삭제하는 동작이 dequeue(데큐)

인큐는 큐의 끝부분에서 추가(push), 데큐는 큐의 앞부분에서 삭제(shift)

-큐의 앞부분에 있는 요소를 확인할수 있는 기능을 피크(peek)라고 한다.

 

function Queue(){
    this.dataStore = [];
    this.enqueue = enqueue;
    this.dequeue = dequeue;
    this.front = front;
    this.back = back;
    this.toString = toString;
    this.empty = empty;
}

function enqueue(element){
    this.dataStore.push(element);
}

function dequeue(){
    return this.dataStore.shift();
}

function front(){
    return this.dataStore[0];
}

function back(){
    return this.dataStore[this.dataStore.length-1];
}

function toString(){
    let retStr = "";
    for(let i=0; i<this.dataStore.length; ++i){
        retStr += this.dataStore[i] + "\n";
    }
    return retStr;
}

function empty(){
    if(this.dataStore.length == 0){
        return true;
    }
    else {
        return false;
    }
}
728x90