public void Enqueue(T val, int prior) { //increase size /* * if (Count >= Capacity) * { * Capacity *= 2; * PNode<T>[] temp = new PNode<T>[Capacity]; * * for (int i = 0; i < PriorityList.Length; i++) * { * temp[i] = PriorityList[i]; * } * * * PriorityList = temp; * } */ if (Count >= Capacity) { Capacity *= 2; PNode <T>[] temp = new PNode <T> [Capacity]; for (int i = 0; i < PriorityList.Length; i++) { temp[i] = PriorityList[i]; } } for (int i = 0; i < PriorityList.Length; i++) { if (PriorityList[i] == null) { PriorityList[i] = new PNode <T>(val, prior); break; } } Count++; Sort(); /// calls below class }
public PNode <T> Dequeue() { if (Count == 0) { throw new InvalidOperationException("queue empty"); } PNode <T> val = null; for (int i = 0; i < PriorityList.Length; i++) { if (PriorityList[i] != null) { val = PriorityList[i]; PriorityList[i] = null; break; } } Count--; return(val); }