国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法》筆記——第4章 隊列

callmewhy / 1057人閱讀

摘要:隊列遵循原則的一組有序的項向隊列尾部添加一個項移除隊列的第一項返回隊列中第一項,對隊列本身不做修改判斷隊列是否為空返回隊列包含的元素個數(shù)優(yōu)先隊列根據(jù)優(yōu)先級添加項最小優(yōu)先隊列移除隊列的第一項返回隊列中第一項,對隊列本身不做修改判斷隊列是否

隊列遵循FIFO(First In First Out)原則的一組有序的項

let Queue = (function () {
    let item = new WeakMap();
    class InnerQueue {
        constructor() {
            item.set(this, [])
        }
        /**
         * 向隊列尾部添加一個項
         * @param element
         */
        enqueue(element) {
            item.get(this).push(element)
        }
        /**
         * 移除隊列的第一項
         */
        dequeue() {
            return item.get(this).shift()
        }
        /**
         * 返回隊列中第一項,對隊列本身不做修改
         * @returns {*}
         */
        front() {
            return item.get(this)[0]
        }
        /**
         * 判斷隊列是否為空
         * @returns {boolean}
         */
        isEmpty() {
            return item.get(this).length === 0
        }
        /**
         * 返回隊列包含的元素個數(shù)
         * @returns {*}
         */
        size() {
            return item.get(this).length
        }
    }
    return InnerQueue
})();

優(yōu)先隊列

let PriorityQueue = (function () {
    let item = new WeakMap();
    class InnerQueue {
        constructor() {
            item.set(this, [])
        }
        /**
         * 根據(jù)優(yōu)先級添加項(最小優(yōu)先隊列)
         * @param element
         * @param priority
         */
        enqueue(element, priority = (item.get(this).length === 0 ? 1 : item.get(this)[item.get(this).length - 1].priority + 1)) {
            const queue = item.get(this);
            if (queue.length === 0) {
                item.get(this).push({element, priority});
                return;
            }
            for (let i = 0; i < queue.length; i++) {
                if (priority < queue[i].priority) {
                    item.get(this).splice(i, 0, {element, priority});
                    break;
                } else if (i === queue.length - 1) {
                    item.get(this).push({element, priority});
                    break;
                }
            }
        }
        /**
         * 移除隊列的第一項
         */
        dequeue() {
            return item.get(this).shift()
        }
        /**
         * 返回隊列中第一項,對隊列本身不做修改
         * @returns {*}
         */
        front() {
            return item.get(this)[0]
        }
        /**
         * 判斷隊列是否為空
         * @returns {boolean}
         */
        isEmpty() {
            return item.get(this).length === 0
        }
        /**
         * 返回隊列包含的元素個數(shù)
         * @returns {*}
         */
        size() {
            return item.get(this).length
        }
        print() {
            return JSON.stringify(item.get(this))
        }
    }
    return InnerQueue
})();

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/108867.html

相關(guān)文章

  • 重讀《學習JavaScript數(shù)據(jù)結(jié)構(gòu)算法-三版》- 5 隊列

    摘要:定場詩馬瘦毛長蹄子肥,兒子偷爹不算賊,瞎大爺娶個瞎大奶奶,老兩口過了多半輩,誰也沒看見誰前言本章為重讀學習數(shù)據(jù)結(jié)構(gòu)與算法第三版的系列文章,主要講述隊列數(shù)據(jù)結(jié)構(gòu)雙端隊列數(shù)據(jù)結(jié)構(gòu)以及隊列相關(guān)應用。 定場詩 馬瘦毛長蹄子肥,兒子偷爹不算賊,瞎大爺娶個瞎大奶奶,老兩口過了多半輩,誰也沒看見誰! 前言 本章為重讀《學習JavaScript數(shù)據(jù)結(jié)構(gòu)與算法-第三版》的系列文章,主要講述隊列數(shù)據(jù)結(jié)構(gòu)、...

    charles_paul 評論0 收藏0
  • Java學習路線總結(jié),搬磚工逆襲Java架構(gòu)師(全網(wǎng)最強)

    摘要:哪吒社區(qū)技能樹打卡打卡貼函數(shù)式接口簡介領(lǐng)域優(yōu)質(zhì)創(chuàng)作者哪吒公眾號作者架構(gòu)師奮斗者掃描主頁左側(cè)二維碼,加入群聊,一起學習一起進步歡迎點贊收藏留言前情提要無意間聽到領(lǐng)導們的談話,現(xiàn)在公司的現(xiàn)狀是碼農(nóng)太多,但能獨立帶隊的人太少,簡而言之,不缺干 ? 哪吒社區(qū)Java技能樹打卡?【打卡貼 day2...

    Scorpion 評論0 收藏0
  • JavaScript數(shù)據(jù)結(jié)構(gòu)算法筆記——1 JavaScript簡介

    摘要:異或左移右移刪除屬性不同類型之間比較在比較對象時,比較的是引用和是內(nèi)部方法對不同的類型返回結(jié)果如下表對不同類型返回結(jié)果如下類申明函數(shù)有兩種方法在原型上申明函數(shù),只會創(chuàng)建一次,在所有實例中共享,可以節(jié)約內(nèi)存和降低實例化的開銷在類定義中申明函數(shù) ^ 異或 > 右移 delete 刪除屬性 不同類型之間==比較 showImg(https://segmentfault.c...

    Cheng_Gang 評論0 收藏0
  • JavaScript數(shù)據(jù)結(jié)構(gòu)算法筆記——2 數(shù)組

    數(shù)組操作方法 方法 描述 備注 push() 將元素添加到數(shù)組末尾 修改原數(shù)組 unShift() 將元素插入到數(shù)組首位(將每項向后移動一位,在第一位插入元素) 修改原數(shù)組 pop() 刪除數(shù)組最后一個元素 修改原數(shù)組 shift() 刪除數(shù)組第一個元素(將每項向前移動一位并刪除最后一項) ...

    Martin91 評論0 收藏0
  • JavaScript數(shù)據(jù)結(jié)構(gòu)算法筆記——7 字典和散列表

    摘要:在字典中,存儲的是鍵,值,集合可以看作值,值的形式存儲元素,字典也稱為映射方法描述備注向字典中添加新元素通過某個鍵值從字典中移除對應的數(shù)據(jù)值判斷某個鍵值是存在于這個字典中通過鍵值獲取對應的數(shù)據(jù)值返回字典所有元素的數(shù)量刪除字典中所有元素將字典 在字典中,存儲的是[鍵,值],集合可以看作[值,值]的形式存儲元素,字典也稱為映射 方法 描述 備注 set(key,...

    zorro 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<