所谓队列 ,他的特点是 FIFO 就像是在排队一样,排在最前面的,会优先处理完,优先出队,所以就是一个先进先出的一个特点,JavaScript通过数组来实现
这里套用之前栈的部分相关方法 同是借助数组来实现
commo.js
/**
* 检查栈是否为空
* @returns boolean
*/
isEmpty() {
return this.__items.length === 0
}
/**
* 返回栈大小
* @returns number
*/
size() {
return this.__items.length
}
/**
* 返回字符串
* @returns string
*/
toString() {
let str = ''
this.__items.forEach(item => {
str += ' ' + item
})
return str
}
接下来,定义一个队列继承共有方法
queue.js
export default class Queue extends Common {
__items = []
/**
* 将元素加入队列
* @param {any} el 待加入的元素
*/
enqueue(el) {
this.__items.push(el)
}
/**
* 删除元素
*/
dequeue() {
return this.__items.shift()
}
/**
* 返回第一个元素
* @returns any
*/
front() {
return this.__items[0]
}
}
这就是一个简单的队列结构了
使用
{
// 定义队列
const q = new Queue
// 加入数据到队列
q.enqueue(123)
q.enqueue(456)
// 输出队列大小
console.log(q.size()) // 2
// 取出第一个
console.log(q.front()); // 123
}