示例#1
0
 /// <summary>
 /// Enqueue a node to the priority queue.  Lower values are placed in front. Ties are broken by first-in-first-out.
 /// This queue automatically resizes itself, so there's no concern of the queue becoming 'full'.
 /// Duplicates are allowed.
 /// O(log n)
 /// </summary>
 public void Enqueue(T item, int priority)
 {
     lock (_queue)
     {
         SimpleNode node = new SimpleNode(item);
         if (_queue.Count == _queue.MaxSize)
         {
             _queue.Resize(_queue.MaxSize * 2 + 1);
         }
         _queue.Enqueue(node, priority);
     }
 }