95 lines
1.9 KiB
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;
|
|
|
|
}
|