/**
* 顺序栈
*/
public class QequeAchieve {
private int size; //栈的长度
private int top; //栈的指针
private Object listArray[]; //保存栈的值
private static final int DEFAULTSIZE = 10;
public QequeAchieve() {
setup(DEFAULTSIZE);
}
QequeAchieve(int size) {
setup(size);
}
//初始化参数
private void setup(int size){
this.size = size;
this.top = 0;
this.listArray = new Object[size];
}
/**
* 清空操作
* */
public void clear(){
this.top = 0;
}
/**
* 压栈操作 进栈是先自增再赋值,出栈则反过来。
* @throws Exception
* */
public void push(Object object){
if(this.top < this.size){
this.listArray[top++] = object;
}else{
System.out.println("Stack overflow!");
}
}
/**
* 弹出栈顶元素 先把要出栈的元素获取到,然后再指针自减,把空间释放出来。
* @throws Exception
* */
public Object pop(){
if(isEmpty()){
System.out.println("Stack is empty!");
return null;
}else{
return this.listArray[--top];
}
}
//判断栈是否为空
public boolean isEmpty(){
return this.top == 0;
}
public static void main(String[] args) {
QequeAchieve qequeAchieve=new QequeAchieve(3);
qequeAchieve.push("88");
qequeAchieve.push("99");
qequeAchieve.push("100");
qequeAchieve.push("110"); //此处的添加不成功,会打印出 Stack is empty!
System.out.println(qequeAchieve.pop()); //顺序栈的特点是先进先出,所以 最开始出栈的为 100 90
System.out.println(qequeAchieve.pop());
System.out.println(qequeAchieve.isEmpty());
qequeAchieve.clear(); //此处的clear并没有删除数组中的值,只是将top赋为0后,无法再根据top的值查寻
System.out.println(qequeAchieve.isEmpty());
}
}
java实现顺序栈
最新推荐文章于 2024-07-27 13:31:57 发布