/*堆栈的基本运算有6种:
判断堆栈空、堆栈初始化、判断堆栈满(仅限于顺序存储情况)、入栈元素、出栈元素、取栈顶元素*/
/*入栈考虑:1。堆栈初始化
2。判断堆栈是否为满,如不满,可插元素入栈*/
/*出栈考虑:1。判断栈是否为空,不空,删除元素
2。除战前保存栈顶元素*/
//顺序栈的基本运算
Class astack
{
private static final int defaultsize = 10 ;
private int size;
private int top;
private object[] listarray;
// 定义堆栈空间大小
AStack(){setup(defaultSize);}
AStack( int sz){setup(sz);}
// 堆栈初始化
public void setup( int sz)
{
size = sz;top = 0 ;listarray = new object[sz];
}
// 堆栈清空
public void clear()
{
top = 0 ;
}
// 栈顶压入元素
public void push(object it)
{
Assert.notFalse(top < size, ' Stack overflow ' );
listarray[top ++ ] = it;
}
// 弹出栈顶元素
public object pop()
{
Assert.notFalse( ! isEmpty(), ' empty stack ' );
return listarray [ -- top];
}
// 取栈顶元素值
public object topValue()
{
Assert.notFalse( ! isempty(), ' empty stack ' );
return listarray[top - 1 ];
}
// 测试堆栈是否为空
public boolean isempty()
{
return top == 0 ;
}
}
{
private static final int defaultsize = 10 ;
private int size;
private int top;
private object[] listarray;
// 定义堆栈空间大小
AStack(){setup(defaultSize);}
AStack( int sz){setup(sz);}
// 堆栈初始化
public void setup( int sz)
{
size = sz;top = 0 ;listarray = new object[sz];
}
// 堆栈清空
public void clear()
{
top = 0 ;
}
// 栈顶压入元素
public void push(object it)
{
Assert.notFalse(top < size, ' Stack overflow ' );
listarray[top ++ ] = it;
}
// 弹出栈顶元素
public object pop()
{
Assert.notFalse( ! isEmpty(), ' empty stack ' );
return listarray [ -- top];
}
// 取栈顶元素值
public object topValue()
{
Assert.notFalse( ! isempty(), ' empty stack ' );
return listarray[top - 1 ];
}
// 测试堆栈是否为空
public boolean isempty()
{
return top == 0 ;
}
}