js隊列實現優先級插入的方法

隊列是先進先出.

在醫院中排隊的時候就是一個隊列,最先排隊的人,會先獲得醫生的治療,這就是先進先出的隊列

但是也有例外,當醫院來了一位急救病人的時候,這個隊列就需要做一些改進,改爲最小優先隊列,這樣可以讓急救病人首先獲得醫生的救治,從而保住性命.

現在用js來實現一個優先隊列

        //優先隊列
         function PriorityQueue(){
            var item = [];
            function QueueElement(element, priority){
                this.element = element;
                this.priority = priority;
            }

            this.enqueue = function(element , priority){
                var queueElement = new QueueElement(element,priority);

                if(item.length == 0){
                    item.push(queueElement);
                }else{
                    var added = false;
                    for(var i = 0; i<item.length; i++){
                        if(queueElement.priority < item[i].priority){
                            item.splice(i,0,queueElement);
                            added = true;
                            break;
                        }
                    }

                    if(!added){
                        item.push(queueElement);
                    }
                }
            };

            this.print = function(){
                return item;
            }
        }


         var priorityqueue = new PriorityQueue();
        console.log(priorityqueue);
        priorityqueue.enqueue('感冒病人',4);
        console.log(priorityqueue.print());
        priorityqueue.enqueue('流感病人',3);
        console.log(priorityqueue.print());
        priorityqueue.enqueue('急救病人1',1);
        console.log(priorityqueue.print());
        priorityqueue.enqueue('急救病人2',1);
        console.log(priorityqueue.print());
        priorityqueue.enqueue('感冒病人2',4);

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章