1、什么是队列
队列是一种先进先出的数据结构,可以理解为去食堂排队打饭,先到的同学先打到饭菜。
2、队列实现
js中没有队列这种结构,但是可以通过Array来模拟。
class Queue {
constructor() {
// 使用数组进行储存
this.list = [];
}
// 入队
enqueue(val) {
this.list.push(val);
}
// 出队
dequeue() {
this.list.shift();
}
// 是否为空
isEmpty() {
return this.list.length === 0;
}
// 清空
clear() {
this.list = [];
}
// 获取头部
head() {
return this.list[0];
}
// 获取长度
size() {
return this.list.length;
}
}
3、任务队列
js是单线程语言,当遇到需要等待的任务(异步任务),不会等待执行完该任务再执行后面的代码,而是会先放进任务队列中,等待同步代码执行完毕查看异步是否完成,如果完成将当前异步任务的回调拿到主栈中执行。
这里表达的是js对异步的处理使用的是队列,不做展开,具体可以详细了解js的执行机制。
4、小结
队列是一种先进先出的数据结构,实现比较简单,想要深入可以去LeetCode刷一刷相关的题。