
//****************************************************
// TITLE: IntStack.java                              *
// AUTHOR: Kim Skak Larsen                           *
// DATE: 23/08 2001                                  *
//                                                   *
// Implements the standard ADT IntStack.             *
//****************************************************


public class IntStack
{
   StackItem stack;

   public class StackItem
   {
      int entry;
      StackItem next;

      public StackItem(int e, StackItem n)
      {
         entry = e;
         next = n;
      } // StackItem

   } // StackItem

   public IntStack()
   {
      stack = null;
   } // IntStack

   public void push(int e)
   {
      stack = new StackItem(e, stack);
   } // push

   public void pop()
   {
      stack = stack.next;
   } // pop

   public int top()
   {
      return stack.entry;
   } // top

   public boolean isEmpty()
   {
      return stack == null;
   } // isEmpty

   public void printStack(StackItem p)
   {
      if (p != null)
      {
         printStack(p.next);
         System.out.print(" " + p.entry);
      }
   } // printStack

   public void printStack()
   {
      StackItem p;

      System.out.print("Stack: ");
      printStack(stack);
      System.out.print("\n");
      
   } // printStack

} // IntStack
