前言
对列与栈的基本特点相反,属于是先进先出,也属于操作受限的数据结构。同样,也可以依据数组或者链表实现。
基本分析
也是用数组来实现
具有的基本函数
- 入队
- 出队
- 队列是否为空
- 队列长度
- 遍历
- 返回头元素
- 返回尾元素
- 清空
代码实现
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描述
