package stack; import exceptions.EmptyStackException; import stack.utility.Node; /** * Created with MONSTER. * User: xgiovio * Date: 05/03/14 * Time: 0.12 */ //Copyright (c) 2003 Brown University, Providence, RI //Additional modifications and methods by xgiovio public class NodeStack implements Stack { @Override public void push(E element) { Node temp = new Node(element,stack); stack = temp; ++number_of_elements; } @Override public E top() throws EmptyStackException { if (isEmpty()) throw new EmptyStackException(); return stack.getElement(); } @Override public E pop() throws EmptyStackException { Node to_return; if (isEmpty()) { throw new EmptyStackException(); }else{ to_return = stack; stack = stack.getNext(); --number_of_elements; return to_return.getElement(); } } @Override public boolean isEmpty() { if (size() < 1) return true; return false; } @Override public int size() { return number_of_elements; } @Override public String toString() { String to_return = ""; to_return = to_return + "["; for ( Node temp = stack; temp != null ; temp = temp.getNext()){ if ( temp.getNext() == null){ to_return+=(temp.getElement().toString()); }else{ to_return+=( temp.getElement().toString() + ","); } } to_return = to_return + "]"; return to_return; } private Node stack = null; private int number_of_elements = 0; }