js 類比隊列類

來源:互聯網
上載者:User

 

/*

 * 類比隊列

 */

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

  

 

摘自 尋夢E.net

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.