/** * 最小优先队列 */ function MaxPriorityQueue() { var items = []; function QueueElement (element, priority){ this.element = element; this.priority = priority; } this.enqueue = function(element, priority){ var queueElement = new QueueElement(element, priority); var added = false; for(var i=0; i items[i].priority){ items.splice(i,0,queueElement); added = true; break; } } if(!added){ items.push(queueElement); } } this.dequeue = function(){ return items.shift(); }; this.front = function(){ return items[0]; }; this.end = function(){ return items[items.length-1]; } this.isEmpty = function(){ return items.length == 0; }; this.clear = function(){ items = []; }; this.size = function(){ return items.length; }; this.print = function(){ console.table(items); }; };