隊列是先進先出.
在醫院中排隊的時候就是一個隊列,最先排隊的人,會先獲得醫生的治療,這就是先進先出的隊列
但是也有例外,當醫院來了一位急救病人的時候,這個隊列就需要做一些改進,改爲最小優先隊列,這樣可以讓急救病人首先獲得醫生的救治,從而保住性命.
現在用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);