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);

  • 相关阅读:
    UVA 11995
    LA 5031
    防卫导弹
    跳马问题
    UVA 11992
    POJ 3264 Balanced Lineup
    0-1背包
    石子合并
    小技巧
    Android广播中有序和无序的区别
  • 原文地址:https://www.cnblogs.com/lsmsky/p/2279573.html
Copyright © 2011-2022 走看看