队列是先进先出.
在医院中排队的时候就是一个队列,最先排队的人,会先获得医生的治疗,这就是先进先出的队列
但是也有例外,当医院来了一位急救病人的时候,这个队列就需要做一些改进,改为最小优先队列,这样可以让急救病人首先获得医生的救治,从而保住性命.
现在用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);
博客地址:http://blog.gaokai.fun/