      1 var define = require("../define").define,
      2         MinHeap = require("./MinHeap"),
      3         base = require("../base");
      4 var PriorityQueue;
      5
      6 /**
      7  * @class PriorityQueue Implementation where the value with the highest priority moves to the front
      8  *        Priority starts at 0, and the greatest value being the lowest priority;
      9  * @augments comb.collections.MinHeap
     10  * @memberOf comb.collections
     11  */
     12 PriorityQueue = define(MinHeap, {
     13     instance : {
     14         /**@lends comb.collections.PriorityQueue.prototype*/
     15
     16         /**
     17          * Adds the value with the specified priority to the queue
     18          *
     19          * @param {Number} priority the priority of the item
     20          *      </br>
     21          *      <b>0 = Highest, n = lowest</b>
     22          * @param value
     23          */
     24         enqueue : function(priority, value) {
     25             return this.insert(priority, value);
     26         },
     27
     28         /**
     29          * Removes the item with the highest priority from the queue
     30          *
     31          * @returns the value of the item
     32          */
     33         dequeue : function() {
     34             return this.remove();
     35         }
     36     }
     37 });
     38
     39 module.exports = exports = PriorityQueue;