Background: The
queue simulates any kind of line situation in which items can get backed
up. The idea behind the queue is that
you can add to the queue from one end and remove items from the queue at the other. Today’s lab will have you simulate a bank
line. We will add customers to the line
and remove them one at a time.
Details: Download Customer.java .
Customers are the “objects” that will be waiting in line.
You will implement 3 queue
classes. Each of these classes will have
the following methods:
1. A constructor that sets-up this particular queue
implementation.
2. An enqueue method which adds a customer to the end of
the line.
3. A dequeue method which removes the first customer from
the beginning of the line.
4. A first method which returns the name of the customer
at the beginning of the line.
5. An isEmpty method that returns true if the queue is
empty.
6. An isFull method that returns true if the queue is
full and we cannot add any more customers.
(This is pertinent to only the QueueArray listed below.)
Your three classes will be
QueueLinkedList, QueueArray, QueueArrayList.
The QueueLinkedList will be a
linked list implementation of a Queue.
You must use your own code…no using java’s LinkedList class. You should use a singly linked list.
The QueueArray will be an
array implementation of a Queue. In this
case, you will need to use the isFull method to insure that there are still
slots available to add people to the array.
Think carefully about what an array looks like and how you will
determine the beginning and end of the queue.
Your constructor should accept a parameter indicating the maximum number
of people that can be in the queue.
The QueueArrayList will be a
java ArrayList implementation of a queue.
Testing
Of course, you will need to
test your queues. Think carefully about
your test cases and write a Driver that will continually show you the state of
your queue. Your driver should display a
message before each action with the expected result. You should display each
customer that is added to the queue and each customer that is removed from the
queue. Note that you cannot “print” your queue, since in a queue, the only
visible element is the first one. As a
final test of each queue, dequeue each of the elements of the queue displaying
each customer as it is removed from the list.
Your final state should be an empty queue.
Submission
You will submit this
assignment by turning in a disk with your your 3 queue implementations and your
test driver. You should make sure that
your program is VERY WELL documented.
You should practice writing a good test program. I will only give full credit for fully tested
applications.