Files
unisa_strutture_dati_2013_2014/stack/ArrayStack.java

95 lines
1.9 KiB
Java

package stack;
import exceptions.EmptyStackException;
/**
* 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 ArrayStack<E> implements Stack<E> {
public ArrayStack(){
stack = (E[])new Object[dcapacity];
}
public ArrayStack(int size){
stack = (E[])new Object[size];
}
@Override
public void push(E element) {
if (stack.length == (top + 1)){
E[] stack2 = (E[])new Object[(stack.length *2)];
for (int i = 0; i<= top; i++){
stack2[i] = stack[i];
}
stack = stack2;
top++;
stack[top] = element;
}else{
top++;
stack[top] = element;
}
}
@Override
public E top() throws EmptyStackException {
if (isEmpty())
throw new EmptyStackException();
return stack[top];
}
@Override
public E pop() throws EmptyStackException {
if (isEmpty())
throw new EmptyStackException();
top--;
return stack[top + 1];
}
@Override
public boolean isEmpty() {
if (size() < 1)
return true;
return false;
}
@Override
public int size() {
return (top + 1);
}
@Override
public String toString() {
String to_return = "";
to_return = to_return + "[";
for (int i = 0;i<=top;i++){
if ( i == top){
to_return+=(stack[i].toString());
}else{
to_return+=(stack[i].toString() + ",");
}
}
to_return = to_return + "]";
return to_return;
}
private int top = -1;
private int dcapacity = 100;
private E[] stack;
}