public interface Stack{
public void pop();
public void push(Object obj);
public Object top();
}
import java.util.NoSuchElementException;
public class ArrayStack implements Stack{
private int capacity=101;
private Object[] data;
private int top=0;
public ArrayStack(){
this(101);
}
public ArrayStack(int capacity){
this.capacity=capacity;
data=new Object[capacity+1];
}
public void pop(){
if(isEmpty())
throw new NoSuchElementException("stack is empty");
else{
data[top]=null;
top--;
}
}
public void push(Object item){
top++;
try{
data[top]=item;
}catch(ArrayIndexOutOfBoundsException ex){
top--;
throw new ArrayIndexOutOfBoundsException("overflow");
}
}
public boolean isEmpty(){
if(top==0)
return true;
else
return false;
}
public int size(){
return top;
}
public Object top(){
if(isEmpty())
throw new NoSuchElementException("stack is empty!");
else
return data[top] ;
}
public static void main(String[] args){
ArrayStack arrayStack = new ArrayStack(5);
arrayStack.push(new Integer(1));
arrayStack.push(new Integer(2));
arrayStack.push(new Integer(2));
System.out.println(arrayStack.size());
arrayStack.pop();
System.out.println(arrayStack.size());
}
}