last-in first-out (LIFO)后进先出特性
属性 array(栈数组) t(栈顶位置)
方法(空,满,放,取,大小,获取栈顶元素)
public class MyArrayStack {
/*- parameters initialized -*/
int[] array;
int t = -1;
public MyArrayStack(int array_size)
{
this.array = new int[array_size];
}
/*- basic functions -*/
public void push(int temp) throws Exception
{
if (isFull())
{
throw new Exception("The stack is Full!Can not push!");
}
else
{
array[t+1] = temp;
t = t + 1;
}
}
public int pop() throws Exception
{
if (isEmpty())
{
throw new Exception("The stack is Empty!Can not pop!");
}
else
{
int ret;
ret = array[t];
t = t - 1;
return ret;
}
}
public boolean isFull()
{
if (t + 1 == array.length)
{
return true;
}
else
{
return false;
}
}
public boolean isEmpty()
{
if (t < 0)
{
return true;
}
else
{
return false;
}
}
public int size()
{
return t + 1;
}
public int top() throws Exception
{
if (isEmpty())
{
throw new Exception("The stack is Empty!No top value!");
}
else
{
return array[t];
}
}
public static void main(String[] args) throws Exception
{
MyArrayStack mystack = new MyArrayStack(10);
try {
mystack.push(4);
mystack.push(3);
mystack.push(2);
mystack.push(1);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
while(!mystack.isEmpty())
{
System.out.println(mystack.pop());
}
}
}