**fig3_57.txt** /* 1*/ static const Default_Size = 100; /* 2*/ template /* 3*/ class Queue /* 4*/ { /* 5*/ private: /* 6*/ unsigned int Full_Queue; /* 7*/ int Q_Front; /* 8*/ int Q_Rear; /* 9*/ int Q_Size; /*10*/ Element_Type *Q_Array; /*11*/ void Increment( int & X ); /*12*/ Queue( const Queue & Value ); /*13*/ public: /*14*/ // Constructors. /*15*/ Queue( unsigned int Max_Size = Default_Size ); /*16*/ // Destructor. /*17*/ ~Queue( ) { delete [ ] Q_Array; } /*18*/ // Operators. /*19*/ const Queue & operator = ( const Queue & Value ); /*20*/ // Member functions. /*21*/ void Enqueue( const Element_Type & X ); /*22*/ Element_Type Dequeue( ); /*23*/ void Make_Empty( ); /*24*/ int Is_Empty( ) const { return Q_Size == 0; } /*25*/ int Is_Full( ) const { return Q_Size == Full_Queue; } /*26*/ };