public class ArrayStack{
private int size;
private int maxSize;
private Object []data;
public ArrayStack(){
data=new Object[10];
maxSize=10;
size=0;
}
public ArrayStack(int _maxSize){
data=new Object[_maxSize];
maxSize=_maxSize;
size=0;
}
public void push(Object _data){
if(size==maxSize){
System.out.println("Stack Over Flow");
}
else{
data[size]=_data;
size++;
}
}
public void pop(){
if(size==0){
System.out.println("Stack Under Flow");
}
else{
size--;
data[size]=null;
}
}
public Object top(){
return data[size-1];
}
public boolean isEmpty(){
return (size==0);
}
public boolean isFull(){
return (size==maxSize);
}
public void display(){
if(isEmpty()){
System.out.println("(Empty)");
}
else{
System.out.println("xxxxxx");
for(int i=size-1;i>=0;i--){
System.out.printf("|%4d",data[i]);
System.out.println("|");
}
System.out.println("xxxxxx");
}
}
}