public void Enqueue(object _data, int _priority) { if (first == null) { EnqueueFirstItem(_data, _priority); return; } if (_priority > first.priority) { var newFirstNode = new PQNode(_data, _priority); newFirstNode.next = first; first = newFirstNode; return; } var tempNode = first; while (tempNode.next != null && _priority < tempNode.next.priority) { tempNode = tempNode.next; } var newItem = new PQNode(_data, _priority); newItem.next = tempNode.next; tempNode.next = newItem; }
public void Dequeue() { if (first == null) { return; } first = first.next; }
private void EnqueueFirstItem(object _data, int _priority) { first = new PQNode(_data, _priority); }
public PriorityQueue() { first = null; }
public PQNode(object _value, int _priority) { data = _value; priority = _priority; next = null; }