/** * Interface for priority queue of jobs * @author Suzanne Balik, 9 Nov 2002 */ public interface PriorityQueue { /** * Remove all items from queue */ void clear(); /** * Returns true if queue is empty, false otherwise * @return true if queue is empty, false otherwise */ boolean isEmpty(); /** * Returns maximum priority value in queue OR * 0 if queue is empty * @return maximum priority value in queue OR * 0 if queue is empty * MUST BE IMPLEMENTED RECURSIVELY IN UnorderedQueue USING * private int maxPriorityHelper(Node ref) method!! */ int maxPriority(); /** * Adds job with given priority and number to queue * ONLY IF job is not already in the queue * and if the priority is > 0!!! * @param priority priority of job * @param jobNumber job number */ void addJob(int priority, String jobNumber); /** * Removes highest priority job from queue * @return job number of job removed from queue OR * null if queue is empty */ String removeHighestPriorityJob(); /** * Removes the given job from queue * @return true if job was removed * false if job was not it queue */ boolean removeJob(String jobNumber); /** * Returns number of jobs in queue * @return number of jobs in queue * MUST BE IMPLEMENTED RECURSIVELY USING * private int numberOfJobsHelper(Node ref) method!! */ int numberOfJobs(); /** * Returns list of jobs in queue * @return list of jobs in queue * MUST BE IMPLEMENTED RECURSIVELY USING * private String listInOrderHelper(Node ref) method!! */ String listInOrder(); /** * Returns list of jobs in queue * @return list of jobs in queue * MUST BE IMPLEMENTED RECURSIVELY USING * private String listInReverseHelper(Node ref) method!! */ String listInReverse(); }