/// <summary> /// Construct a help desk object. /// </summary> public Helpdesk() { int numPriorities = Enum.GetValues(typeof(Priority)).Length; lists = new ListOfTickets[numPriorities]; for (int idx = 0; idx < lists.Length; idx++) { lists[idx] = new ListOfTickets(); } }
/// <summary> /// Construct a help desk object. /// This is O(N), for-loop n = list.length. /// </summary> public Helpdesk() { int numPriorities = Enum.GetValues(typeof(Priority)).Length; lists = new ListOfTickets[numPriorities]; for (int idx = 0; idx < lists.Length; idx++) { lists[idx] = new ListOfTickets(); } }
/// <summary> /// Remove the highest priority ticket from the queue. /// O(1) for deletion /// </summary> /// <returns>Ticket</returns> public Ticket RemoveNextTicket() { Ticket ticket = null; for (int idx = lists.Length - 1; idx >= 0; idx--) { ListOfTickets list = lists[idx]; if (!list.isEmpty()) { ticket = list.RemoveNextTicket(); break; } } //if (ticket == null) // the lists were all empty // throw new Exception("No tickets to work!"); return(ticket); }