队列
133字小于1分钟
2023-11-22
介绍
前面是前端, 后面是后端
插入从后端插入, 取出从前端取出
也就是先进先出 ( FIFO:First In First Out )
优点: 提供先进先出的存储方式, 添加速度快, 允许重复
缺点: 只能在一头添加, 另一头获取, 存取其他项很慢
TS实现
class Queue {
#value: any[] = []
enqueue(element: any) {
return this.#value.push(element)
}
dequeue() {
return this.#value.shift()
}
front() {
return this.#value[0]
}
isEmpty() {
return this.#value.length === 0
}
size() {
return this.#value.length
}
toString() {
return this.#value.toString()
}
}
小案例
function passGame(nameList: string[], num = 5) {
const queue = new Queue()
for (let name of nameList) {
queue.enqueue(name)
}
while (queue.size() > 1) {
for (let i = 0; i < num - 1; i++) {
queue.enqueue(queue.dequeue())
}
queue.dequeue()
}
return queue
}