myqueue.h
#ifndef _MYQUEUE_H
#define _MYQUEUE_H
#include "bool.h"
// *******************************************************************
// My queue class for integers (not a template class)
// *******************************************************************
class myqueue
{
public:
// constructors/destructor
myqueue( ); // construct empty queue
myqueue(const myqueue& Q); // copy constructor
// (modify your mystack code)
~myqueue( ); // destructor
// assignment
const myqueue& myqueue::operator=(const myqueue &rhs);
// (modify your mystack code)
// accessors
const int front( ) const; // return front (no dequeue)
bool isEmpty( ) const; // return true if empty else false
int length( ) const; // return number of elements in queue
// modifiers
void enqueue(const int & item ); // insert item (at rear)
void dequeue( ); // remove first element
void dequeue( int & item ); // combine front and dequeue
void makeEmpty( ); // make queue empty
private:
struct nodetype
{
int info;
nodetype * next; // pointer to next element
nodetype (int D, nodetype *N): info (D), next (N) { }
};
int mySize; // number of items currently in queue
nodetype * myfront; // pointer to first element of queue
nodetype * myback; // pointer to last element of queue
};
// *******************************************************************
// Specifications for queue functions
//
// constructors/destructor
// myqueue( )
// postcondition: the queue is empty
//
// myqueue ( const myqueue & R)
// postcondition: the queue contains a copy of the elements of queue R
//
// ~myqueue( )
// postcondition: queue is destroyed
//
// accessors
// const itemType & front( )const
// precondition: queue has n >= 1 elements
// postcondition: returns e1, queue is unchanged
//
// bool isEmpty( ) const
// postcondition: returns true if queue is empty, false otherwise
//
// int length( ) const
// precondition: queue has n >= 0 elements
// postcondition: returns n
//
// modifiers:
// void enqueue( const itemType & item )
// precondition: queue has n >= 0 elements
// postcondition: item has been added to the end
//
// void dequeue( )
// precondition: queue has n >= 1 elements
// postcondition: first element has been removed
//
// void dequeue( itemType & item )
// precondition: queue had n >= 1 elements
// postcondition: first element has been removed and item == e1
//
// void makeEmpty( )
// postcondition: queue is empty
#include "myqueue.cpp"
#endif
Continue to: Unit 7 / Prev / Next