You are going to need to create four classes:
First write the Ordered Linked List class. Use the header file ListClass.h, that includes the member functions Insert, Remove, and isEmpty. Read the pre/post descriptions to determine what each function does. This is a template class, but in your first draft get it to work as a non-template class, using int for the type in the class. Use the test program testll1.cpp to test your non-template class. Once the class works for int's, change it to a template class and run the test program testll2.cpp.
Now write the Priority Queue class using your Ordered Linked List class. Use the header file PriQueue.h. Read the pre/post conditions to determine what the member functions Enqueue, Dequeue, isEmpty, and makeEmpty do. Use the test program testpq1.cpp to check for validity.
The last class is the Data Class. The data class is composed of a string and a Position value. The Position value indicates the string's priority. Position is a matrix location (row,column) where the lowest value is the top-left corner (0,0), and the values increase along the row (0,1) to (0,2) to ... (0, maxcol). The largest value is located in the bottom-right corner (rowmax,colmax). When entering this data type into a priority queue, the Position value is used to place the data type into the queue. Read the header files MyData1.h and Position1.h for information on the member functions and operators to overload. You will also have to download utils1.h and untils1.cpp. The utilities library contains a function you will need to use in the Position class. Use the test program testdata1.cpp to check for validity.
You now are ready to test the priority queue with the priority data. Use the test program testpq3.cpp.