JavaScript实现队列
队列的定义
队列(Queue)是一种遵从先进先出(First in, first out。简称FIFO)原则的有序集合。用组合模式实现
function Queue(){
this.items = [];
}Queue.prototype={
constructor:Queue,
//入队
enqueue:function() {
var len = arguments.length;
if (len == 0) {
return;
}
for (var i = 0;
i < len;
i++) {
this.items.push(arguments[i])
}
},
//出队
dequeue:function() {
var result = this.items.shift();
return typeof result != 'undefined' ? result : false;
},
//队列是否为空
isEmpty:function() {
return this.items.length == 0;
},
//返回队列长度
size:function() {
return this.items.length;
},
//清空队列
clear:function() {
this.items = [];
},
//返回队列
show:function() {
return this.items;
}
}var que1=new Queue();
que1.enqueue(1,2,3);
que1.enqueue({},2,4);
console.log(que1.dequeue());
用es6-class实现更优雅
class Queue{
constructor(){
this.items=[];
}
//入队
enqueue() {
var len = arguments.length;
if (len == 0) {
return;
}
for (var i = 0;
i < len;
i++) {
this.items.push(arguments[i])
}
}
//出队
dequeue() {
var result = this.items.shift();
return typeof result != 'undefined' ? result : false;
}
//队列是否为空
isEmpty() {
return this.items.length == 0;
}
//返回队列长度
size() {
return this.items.length;
}
//清空队列
clear() {
this.items = [];
}
//返回队列
show() {
return this.items;
}
}
【JavaScript实现队列】栈的实现其实差不了太多
推荐阅读
- 关于QueryWrapper|关于QueryWrapper,实现MybatisPlus多表关联查询方式
- MybatisPlus使用queryWrapper如何实现复杂查询
- python学习之|python学习之 实现QQ自动发送消息
- 事件代理
- 孩子不是实现父母欲望的工具——林哈夫
- opencv|opencv C++模板匹配的简单实现
- Node.js中readline模块实现终端输入
- java中如何实现重建二叉树
- 数组常用方法一
- 人脸识别|【人脸识别系列】| 实现自动化妆