#include <stdio.h> 
#include "Stack.h" 

Stack::Stack()
{
  head = NULL;
}

Stack::~Stack()
{
  while (head != NULL)
  {
    StackElem *tmp = head;
    head = head->next;
    delete tmp;
  }
}

void
Stack::Push(int x)
{
  head = new StackElem(x, head);
}

int
Stack::Pop()
{
  int value = head->data;
  StackElem *oldTop = head;
  head = head->next;
  delete oldTop;
  return value;
}