队列
队列是计算机常用的一种数据结构,遵循先进先出(FIFO,First-In-First-Out) 的原则,在操作系统中有很多的引用,例如进程管理、打印池任务等等。
在 JavaScript 语言中其实自带了队列和栈的相关操作:shift()、unshift()、push()、pop()
这里仍然使用链表来存储数据,模拟队列的相关操作。
队列操作
判断队列是否为空
/**
* 判断队列是否为空
* @return {boolean}
*/
isEmpty() {
return !this.linkedList.head;
}
获取队头元素
/**
* 获取队头元素值
*/
peek() {
if (this.isEmpty()) {
return null
}
return this.linkedList.head.value;
}
入队列
/**
* 入队列,即在链表尾部插入元素
* @param {*} value
*/
enqueue(value) {
return this.linkedList.append(value);
}
出队列
/**
* 出队列,即删除链表头节点
*/
dequeue() {
if (this.isEmpty()) {
return null;
}
return this.linkedList.deleteHead();
}
总结
以上就是队列队队常用操作,完整代码:queue