/* Filename:  ArrStack.h

   Programmer:  Br. David Carlson

   Date:  March 28, 1998

   Modified:  April 23, 1999 to provide an array-based, not list-based,
   implementation of stacks.

   Modified:  June 7, 1999 to use a small stack size for testing purposes.

   Modified:  June 27, 2000.

   This is the header file to accompany ArrStack.cpp.  It provides the
   ArrStackClass shown below which is a subclass of StackBaseClass.
*/

#include "stack.h"


const int StackMax = 12;   // our stacks can only hold this many items

typedef ItemType StackArrayType[StackMax];


class ArrStackClass: public StackBaseClass
   {
   public:
      // We need to supply a constructor to initialize things:
      ArrStackClass(void);
      // No destructor is mentioned here.  We instead use the 
      // destructor automatically supplied by the compiler.
      bool Empty(void) const;
      void Push(const ItemType & Item);
      void Pop(ItemType & Item);
   private:
      int Top;
      StackArrayType Info;
   };


