Source of LinkedStack.java


  1: import java.util.EmptyStackException;
  2: /**
  3:     A class of stacks whose entries are stored in a chain of nodes.
  4:     @author Frank M. Carrano and Timothy M. Henry
  5:     @version 5.0
  6: */
  7: public final class LinkedStack<T> implements StackInterface<T>
  8: {
  9:         private Node topNode; // References the first node in the chain
 10:   
 11:    public LinkedStack()
 12:    {
 13:       topNode = null;
 14:    } // end default constructor
 15:   
 16: //  < Implementations of the stack operations go here. >
 17: //  . . .

 19:         private class Node
 20:         {
 21:       private T    data; // Entry in stack
 22:       private Node next; // Link to next node
 23:       
 24:       private Node(T dataPortion)
 25:       {
 26:          this(dataPortion, null);
 27:       } // end constructor
 28:       
 29:       private Node(T dataPortion, Node linkPortion)
 30:       {
 31:          data = dataPortion;
 32:          next = linkPortion;
 33:       } // end constructor
 34:       
 35:       private T getData()
 36:       {
 37:          return data;
 38:       } // end getData
 39:       
 40:       private void setData(T newData)
 41:       {
 42:          data = newData;
 43:       } // end setData
 44:       
 45:       private Node getNextNode()
 46:       {
 47:          return next;
 48:       } // end getNextNode
 49:       
 50:       private void setNextNode(Node nextNode)
 51:       {
 52:          next = nextNode;
 53:       } // end setNextNode
 54:         } // end Node
 55: } // end LinkedStack