package com.coding.basic;
public class Stack {
private Object[] data;
private int capacity;
private int size;
public Stack(){
capacity = 16;
size = 0;
data = new Object[capacity];
}
public void push(Object o){
if(size < capacity){
data[size++] = o;
}else {
ensureCapacity();
data[size++] = o;
}
}
private void ensureCapacity() {
capacity = capacity*2;
}
public Object pop(){
if(size > 0){
System.out.println(data[size-1]);
//data[size--] = null;
}else {
System.out.println("Empty stack");
}
size--;
return data[size];
}
public Object peek(){
if(size>0){
return data[size-1];
}else {
return null;
}
}
public boolean isEmpty(){
return size==0;
}
public int size(){
return size;
}
}