오늘 뭐했냐/개발에 대한 주저리

23.07.26 자료구조 큐(Queue) 구현

스스로에게 2023. 7. 27. 04:04

 기존에 스택을 구현했기에 그것을 참고하여 이번엔 배열 구조로 구현했다. 큐는 스택과 달리 가장 앞의 데이터와 맨 뒤에 데이터만을 사용하기에 스택과는 조금 다르다.

class Queue {
    constructor() {
        this.storage = []
    }
    isEmpty() {
        return this.storage.length < 1
    }
    isSize() {
        if (this.isEmpty()) return "데이터가 없습니다."
        return this.storage.length
    }
    push(item) {
        this.storage[this.storage.length] = item
    }
    shift() {
        if (this.isEmpty()) return "데이터가 없습니다."
        const shiftData = this.storage[0]
        this.storage.splice(0, 1)
        return shiftData
    }
    front() {
        const frontData = this.storage[0]
        return frontData
    }
    rear() {
        const rearData = this.storage[storage.length]
    }
}

const queue = new Queue()
queue.push("a")
queue.push("b")
queue.push("c")
console.log(queue.front())
console.log(queue.shift())
console.log(queue.shift())
console.log(queue.isSize())
console.log(queue.shift())
console.log(queue.shift())
console.log(queue.isEmpty())

스택과 마찬가지로 배열의 메서드인 push와 shift를 사용하는게 더 편하고 빠르지만 직접 만들면서 구현력을 키우는데 도움이 될 것 같다.