为了账号安全,请及时绑定邮箱和手机立即绑定

JavaScript实现队列

标签:
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;
  }
}

栈的实现其实差不了太多



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


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消