CSCE 221 Cover Page Programming Assignment #3
CSCE 221 Cover Page Programming Assignment #3
Programming Assignment #3
Any assignment turned in without a fully completed coverpage will receive ZERO POINTS.
Please list all below all sources (people, books, webpages, etc) consulted regarding this assignment:
CSCE 221 Students Other People Printed Material Web Material (URL) Other
1. 1. 1. 1. 1.
2. 2. 2. 2. 2.
3. 3. 3. 3. 3.
4. 4. 4. 4. 4.
5. 5. 5. 5. 5.
Recall that University Regulations, Section 42, define scholastic dishonesty to include acquiring answers
from any unauthorized source, working with another person when not specifically permitted, observing
the work of other students during any exam, providing answers when not specifically authorized to do so,
informing any person of the contents of an exam prior to the exam, and failing to credit sources used.
Disciplinary actions range from grade penalties to expulsion. Please consult the Aggie Honor System
Office for additional information regarding academic misconduct – it is your responsibility to understand
what constitutes academic misconduct and to ensure that you do not commit it.
I certify that I have listed above all the sources that I consulted regarding this assignment, and that I have
not received nor given any assistance that is contrary to the letter or the spirit of the collaboration
guidelines for this assignment.
Today’s Date:
Description:
For this programming assignment, you will implement a Priority Queue. Your Priority Queue can grow
dynamically as in the Stack assignment (although you should use a method with amortized cost O(1) for
insertion) or you may make a Priority Queue large enough to fit all of your data ahead of time. You will
build three different implementations of the Priority Queue. Two of these implementations will be based
on a List. The first list implementation, UnsortedPQ, should use an unsorted list to store the data. The
second list implementation, SortedPQ, should use a sorted list. The third implementation, HeapPQ,
should be an array-based implementation of a Heap.
We will test your implementations using a set of numbers in a text file named “numbers.txt”. Each line of
the file will contain a number. The first number will be which Priority Queue to use (0=UnsortedPQ,
1=SortedPQ, 2=HeapPQ). The second number will be the number of remaining elements in the file, n.
The first two numbers of the file (queue type and n) will NOT be inserted into your Priority Queue.
However, the remaining n numbers will be inserted. You should then remove all n numbers and print
them to the screen. Here is an example numbers.txt file.
Using your three implementations, you will also time how long it takes to insert n random numbers and
the total time to insert n random numbers and remove n random numbers. You may use a random
number generating as opposed to the file input above. Time how long insertion takes using the
StopWatch class we provided. You should measure the total time at fixed intervals. You will then show
a graph of the total insertion time versus the number of items inserted for each implementation. You will
then time how long insertion and removal takes by inserting n numbers and removing n numbers for each
implementation. You will then graph the sorting time versus the number of elements. This process will
allow you to see how your choice of implementation can affect performance.