//--------------------------------------------------------------------
//
// Laboratory 6 show6.cpp
//
// Array and linked list implementations of the showStructure
// operation for the Queue ADT
//
//--------------------------------------------------------------------
template < class DT >
void Queue
:: showStructure () const
// Array implementation. Outputs the data items in a queue. If the
// queue is empty, outputs "Empty queue". This operation is intended
// for testing and debugging purposes only.
{
int j; // Loop counter
if ( front == -1 )
cout << "Empty queue" << endl;
else
{
cout << "front = " << front << " rear = " << rear << endl;
for ( j = 0 ; j < maxSize ; j++ )
cout << j << "\t";
cout << endl;
if ( rear >= front )
for ( j = 0 ; j < maxSize ; j++ )
if ( ( j >= front ) && ( j <= rear ) )
cout << dataItems[j] << "\t";
else
cout << " \t";
else
for ( j = 0 ; j < maxSize ; j++ )
if ( ( j >= front ) || ( j <= rear ) )
cout << dataItems[j] << "\t";
else
cout << " \t";
cout << endl;
}
}
//--------------------------------------------------------------------
template < class DT >
void Queue:: showStructure () const
// Linked list implementation. Outputs the elements in a queue. If
// the queue is empty, outputs "Empty queue". This operation is
// intended for testing and debugging purposes only.
{
QueueNode *p; // Iterates through the queue
if ( front == 0 )
cout << "Empty queue" << endl;
else
{
cout << "front ";
for ( p = front ; p != 0 ; p = p->next )
cout << p->dataItem << " ";
cout << "rear" << endl;
}
}