/// <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); } }