#ifndef STACKTYPE_H
#define STACKTYPE_H

template <class ItemType>
struct NodeType { // linked list node type
  ItemType info;
  NodeType *next;
};

template <class ItemType>
class StackType {
public:
  StackType();
  void push(ItemType x);
  ItemType pop(); 
  bool IsEmpty(); // returns true if stack empty, false otherwise
private:
  NodeType<ItemType> *top; // points to top of stack (head of list)
};

#include "StackType.cpp"

#endif

