前端数据结构——队列

144 阅读1分钟

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刷一刷相关的题。