前言

对列与栈的基本特点相反,属于是先进先出,也属于操作受限的数据结构。同样,也可以依据数组或者链表实现。

基本分析

也是用数组来实现

具有的基本函数

  • 入队
  • 出队
  • 队列是否为空
  • 队列长度
  • 遍历
  • 返回头元素
  • 返回尾元素
  • 清空

代码实现

codepen地址:https://codepen.io/robinson90/pen/VJopRm

代码如下:

  1. function Queue() {
  2. var items = [];
  3. this.enqueue = function(data) {
  4. items.push(data);
  5. };
  6. this.dequeue = function() {
  7. return items.shift();
  8. };
  9. this.size = function() {
  10. return items.length;
  11. };
  12. this.isEmpty = function() {
  13. return items.length === 0;
  14. };
  15. this.head = function() {
  16. return items[0] || null;
  17. };
  18. this.tail = function() {
  19. let len = items.length;
  20. if (len > 0) {
  21. return items[len - 1];
  22. }
  23. return null;
  24. };
  25. this.clear = function() {
  26. items = [];
  27. return true;
  28. };
  29. this.show = function() {
  30. console.log(items);
  31. };
  32. }

参考文档

  • 开课吧视频教学资料
  • 极客时间数据结构专栏课
  • 数据结构与算法js描述