Exemple #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, double priority)
        {
            SimpleNode node = new SimpleNode(item);

            if (_queue.Count == _queue.MaxSize)
            {
                _queue.Resize(_queue.MaxSize * 2 + 1);
            }
            _queue.Enqueue(node, priority);
        }
 public void Enqueue(T item, double priority)
 {
     lock (queue) {
         Node node = new Node(item);
         if (queue.Count == queue.MaxSize)
         {
             queue.Resize(queue.MaxSize * 2 + 1);
         }
         queue.Enqueue(node, priority);
     }
 }