template class TStack { protected: T *Stack; int Size; int Top; public: TStack(int aSize) { Size=aSize; Stack=(T *)malloc(Size*sizeof(T)); Top=-1; } virtual ~TStack() { free(Stack); } virtual bool Push(T data) { if (Top < Size-1) { Top++; Stack[Top]=data; return true; } else { return false; } } virtual T Pop() { return Stack[Top--]; } virtual int GetTop() { return Top; } virtual T GetValue(int n) { return Stack[n]; } };