美文网首页让前端飞
JavaScript实现队列

JavaScript实现队列

作者: 卓三阳 | 来源:发表于2018-08-07 11:40 被阅读3次
    队列的定义

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

    栈的实现其实差不了太多

    相关文章

      网友评论

        本文标题:JavaScript实现队列

        本文链接:https://www.haomeiwen.com/subject/qdvnvftx.html