概述
/**
* 顺序栈
*/
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实现顺序栈的全部内容,希望文章能够帮你解决java实现顺序栈所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复