前言
对列与栈的基本特点相反,属于是先进先出,也属于操作受限的数据结构。同样,也可以依据数组或者链表实现。
基本分析
也是用数组来实现
具有的基本函数
- 入队
- 出队
- 队列是否为空
- 队列长度
- 遍历
- 返回头元素
- 返回尾元素
- 清空
代码实现
codepen地址:https://codepen.io/robinson90/pen/VJopRm
代码如下:
function Queue() {
var items = [];
this.enqueue = function(data) {
items.push(data);
};
this.dequeue = function() {
return items.shift();
};
this.size = function() {
return items.length;
};
this.isEmpty = function() {
return items.length === 0;
};
this.head = function() {
return items[0] || null;
};
this.tail = function() {
let len = items.length;
if (len > 0) {
return items[len - 1];
}
return null;
};
this.clear = function() {
items = [];
return true;
};
this.show = function() {
console.log(items);
};
}
参考文档
- 开课吧视频教学资料
- 极客时间数据结构专栏课
- 数据结构与算法js描述