介绍
队列与链表,栈为三种常见的线性数据结构。
队列是一种列表,不同的是队列只能在队尾插入元素,在队首删除元素。队列用于存储按顺序排列的数据,先进先出,与栈不同,栈中最后进入的会被优先处理(洗盘子)。
队列是一种先进先出的数据结构(FIFO)。被用在很多地方,比如进程池,打印任务池。我们经常使用的美团打车、滴滴打车中的排队叫车系统,就是一个队列系统。
常见的队列操作
对队列的主要操一般有两种:插入新元素和删除队列中的元素。插入操作一般叫做入队,删除操作叫做出队。入队在队尾,出队在队首。
插入方法一般叫做push
删除方法一般叫做shift
除此之外还有其他一些常见操作
peek() 读取队首元素
length() 查看队列中存储了多少元素
clear() 清空队列中的元素
empty() 判断队列是否为空
队列代码实现
class Queue {
list: any[] = [];
push = (val: any) => {
this.list.push(val);
};
shift = () => {
return this.list.shift();
};
peek = () => {
const len = this.list.length;
if (len) {
return this.list[this.list.length - 1];
}
return null;
};
empty = () => {
const len = this.list.length;
if (len) {
return true;
}
return false;
};
front = () => {
return this.list[0];
};
toString = () => {
return this.list.join(",");
};
}
队列相关算法
(暂时占坑,后面补充)