91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JavaScript如何實現優先級隊列

發布時間:2021-12-06 10:10:45 來源:億速云 閱讀:199 作者:iii 欄目:開發技術

這篇文章主要講解了“JavaScript如何實現優先級隊列”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“JavaScript如何實現優先級隊列”吧!

一、優先級隊列介紹

我們知道,普通的隊列插入一個元素,數據會被放在后端,并且需要前面所有的元素都處理完成后才會處理前面的數據。但是優先級隊列,在插入一個元素的時候會考慮該數據的優先級,和其他數據的優先級進行比較。比較完成后,可以得出這個元素在隊列中的正確位置,其他的處理方式,和基本隊列的處理方式基本一樣。

優先級隊列主要考慮的問題:

  • 每個元素不再只是一個數據,而且包含數據的優先級;

  • 在添加方式中,根據優先級放入正確的位置。

在日常中也有用到優先級隊列的例子,比如說醫院的(急診科)候診室。醫生會優先處理病情比較嚴重的患者。計算機中,我們也可以通過優先級隊列來重新排列隊列中任務的順序.比如每個線程處理的任務重要性不同,我們可以通過優先級的大小,來決定該線程在隊列中被處理的次序。

二、優先級隊列封裝

優先級隊列的操作和隊列的操作方法基本相同,但是插入操作有所不同,所以,我們這里主要是來實現優先級隊列的插入操作

比如說我們現在要根據某個數據的優先級來插入元素,這里我們先創建一個類來封裝優先級隊列,并在其內部創建一個構造函數來保存元素的優先級和數據,再添加一個屬性用于存放元素。

代碼如下:

function PtiorityQueue(){
            var items = [];
            //封裝一個新的構造函數,用于保存元素和元素的優先級
            function queueElement(element,priority){
                this.element = element;
                this.priority = priority;
            }
        }

創建完成后,在來實現其的插入操作:

  • 如果隊列內部沒有元素,則直接插入

  • 如果要插入的元素的優先級小于隊列內部元素的優先級,則排序后插入。

具體實現代碼如下:

function PtiorityQueue(){
   this.items = [];
    //封裝一個新的構造函數,用于保存元素和元素的優先級
    function QueueElement(element,priority){
        this.element = element;
        this.priority = priority;
    }
     //1.實現插入方法
     PtiorityQueue.prototype.enqueue = function(element,priority){
        //1.創建queueElement對象
        var queueElement = new QueueElement(element,priority);
        //2.判斷隊列是否為空
        if(this.items.length == 0){
            this.items.push(queueElement);
        }else{
            var flag = false;
            for(var i =0;i<this.items.length;i++){
                if(queueElement.priority < this.items[i].priority){
                    this.items.splice(i,0,queueElement);
                    flag = true;
                    break;
                }
            }
            if(!flag){
                this.items.push(queueElement)
            }
        }
     }
}

輸入測試數據為:

var pq = new PtiorityQueue();
        pq.enqueue('d',30)
        pq.enqueue('c',50)
        pq.enqueue('a',100)
        pq.enqueue('b',60)
        pq.enqueue('e',20)
        console.log(pq);

打印結果為:

JavaScript如何實現優先級隊列

感謝各位的閱讀,以上就是“JavaScript如何實現優先級隊列”的內容了,經過本文的學習后,相信大家對JavaScript如何實現優先級隊列這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

叶城县| 富川| 二连浩特市| 新津县| 德惠市| 临江市| 雅安市| 娱乐| 板桥市| 德清县| 东宁县| 江城| 师宗县| 连云港市| 扎兰屯市| 平陆县| 沐川县| 西丰县| 花垣县| 集安市| 乳山市| 腾冲县| 沙湾县| 天津市| 三明市| 宜宾市| 荔波县| 宣汉县| 定结县| 河东区| 岑溪市| 新邵县| 思南县| 京山县| 仙居县| 泽州县| 南川市| 平遥县| 紫金县| 文昌市| 周宁县|