template <class T>
struct StackElem
{
StackElem(T d, StackElem *n)
{ data = d; next = n; }
T data;
StackElem *next;
};
template <class T>
class Stack
{
public:
Stack();
~Stack();
void Push(T x);
T Pop();
private:
StackElem<T> *head;
};