Files
unisa_strutture_dati_2013_2014/stack/NodeStack.java

82 lines
1.7 KiB
Java

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<E> implements Stack<E> {
@Override
public void push(E element) {
Node<E> temp = new Node<E>(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<E> 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<E> 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<E> stack = null;
private int number_of_elements = 0;
}