Your constructor of AStack() withou parameter is useless... you cannot create an EmptyStack
Your Pop did not update count
java
import java.util.Random;
public class TestAStack {
public static void main(String[] args) {
// when constructing a stack it needs a length
int length = 10;
AStack<Integer> arrayStk = new AStack<Integer>(length);
Random rgen = new Random();
for(int i=0; i< length; i++)
{
arrayStk.push(new Integer(rgen.nextInt(10) + 1));
}
System.out.println(arrayStk);
while(!arrayStk.isEmpty())
System.out.println("Poping " + arrayStk.pop());
}
}
java
public class AStack<T> {
private T[] stk;
private int length;//the number of element the stack can store
private int count;//the number of element the stack is storing
public AStack(int len)//create an empty AStack that can store up to len element
{
length = len;
count = 0;
stk =(T []) new Object[len];//array with empty element
}
public boolean isEmpty()
{
return count==0;
}
public boolean isFull()
{
return count == length;
}
public int size()
{
return length;
}
public T peek()
{
if(isEmpty())
{
System.out.println("Peek:Stack is empty");
return null;
}
else
return stk[count--];
}
public T pop()
{
if(isEmpty())
{
System.out.println("Pop:Stack is empty");
return null;
}
else
return stk[--count];
}
public void push(T item)
{
if(count == length) {
System.out.println("Stack is full");
return;
}
System.out.println("Inserting " + item + " at [" + count + "]");
stk[count++] = item;
}
@Override
public String toString()//return the string element
{
String s = "[";
for(int i = 0; i <count; i++)
{
if(i != 0)
s += ", ";
s = s + stk[i];// [value1,value2,....]
}
s +="]";
return s;
}
}