zoukankan      html  css  js  c++  java
  • js 模拟队列类

    /*
    * 模拟队列
    */
    var Qu ={};

    //构造函数
    Qu.Queue = function (len) {
    this.capacity = len; //队列最大容量
    this.list = new Array(); //队列数据
    };

    //入队
    Qu.Queue.prototype.enqueue = function (data) {
    if (data == null) return;
    if(this.list.length>=this.capacity)
    {
    this.list.remove(0);
    }
    this.list.push(data);
    };

    //出队
    Qu.Queue.prototype.dequeue = function () {
    if (this.list == null) return;
    this.list.remove(0);
    };

    //队列长度
    Qu.Queue.prototype.size = function () {
    if (this == null) return;
    return this.list.length;
    };

    //队列是否空
    Qu.Queue.prototype.isEmpty = function () {
    if (this == null|this.list==null) return false;
    return this.list.length>0;
    };
    //对象数组扩展remove
    Array.prototype.remove = function(dx) {
        if (isNaN(dx) || dx > this.length) {
            return false;
        }
        for (var i = 0, n = 0; i < this.length; i++) {
            if (this[i] != this[dx]) {
                this[n++] = this[i]
            }
        }
        this.length -= 1
    }
    

      

    调用例子:

    //队列初始化

    var queue = new Qu.Queue(10);

    queue.enqueue(1);

    queue.enqueue(2);

    queue.enqueue(3);

  • 相关阅读:
    ffmpeg full help
    docker 服务命令
    php 查看swoole版本
    vue/cli 的启动
    TP框架的使用,不需要阿帕奇
    mysql 的文件恢复
    mac下使用iterm实现自动登陆
    跨库怎样查询
    swoole和websocket的关系
    mac上mysql的安装和使用
  • 原文地址:https://www.cnblogs.com/lsmsky/p/2279573.html
Copyright © 2011-2022 走看看