Because you initialized the top
variable to -1
in your constructor, you need to increment the top
variable in your push()
method before you access the array. Note that I've changed the assignment to use ++top
:
public void push(int i)
{
if (top == stack.length)
{
extendStack();
}
stack[++top]= i;
}
That will fix the ArrayIndexOutOfBoundsException
you posted about. I can see other issues in your code, but since this is a homework assignment I'll leave those as "an exercise for the reader." :)