기존에 스택을 구현했기에 그것을 참고하여 이번엔 배열 구조로 구현했다. 큐는 스택과 달리 가장 앞의 데이터와 맨 뒤에 데이터만을 사용하기에 스택과는 조금 다르다.
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를 사용하는게 더 편하고 빠르지만 직접 만들면서 구현력을 키우는데 도움이 될 것 같다.
'오늘 뭐했냐 > 개발에 대한 주저리' 카테고리의 다른 글
| 23.07.28 MVC 패턴 (0) | 2023.07.31 |
|---|---|
| 23.07.27 ORM( 그 중에서 Sequelize) (0) | 2023.07.30 |
| 23.07.25 스택(Stack) 구현하기 (0) | 2023.07.26 |
| 23.07.23 트랜젝션 (Transaction) (0) | 2023.07.24 |
| 23.07.20 클라우드를 언제 사용하는가 (0) | 2023.07.21 |