继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

JavaScript实现队列

SMILET
关注TA
已关注
手记 456
粉丝 80
获赞 441
队列的定义

队列(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;
  }
}

栈的实现其实差不了太多



作者:pattyzzh
链接:https://www.jianshu.com/p/22b8f9d00331


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP