/***** stack.h *******/
const int defaultStack=128;
template<class T>
class stack
{
int size;
int top;
T *data;
public:
stack(int size=defaultStack);
~stack();
void push(T);
T pop();
};
template<class T>
stack<T>::stack(int s)
{
size=s;
top=0;
data=new(T[size]);
}
template<class T>
stack<T>::~stack()
{
delete []data;
}
template<class T>
void stack<T>::push(T d)
{
assert(top<size);
data[top++]=d;
}
template<class T>
T stack<T>::pop()
{
assert(top>0);
return data[--top];
}