public class MyStack {
// 栈的大小
private int maxStack;
//数组模拟栈
private int[] stack;
//表示栈顶所在的位置,默认情况下如果栈没有数据,使用-1
private int top = -1;
//初始化栈的大小
public MyStack(int maxStack) {
this.maxStack = maxStack;
stack=new int[maxStack];
}
//判断栈是否满栈
public boolean isFull(){
return this.top == this.maxStack-1;
}
//判断栈是否空栈
public boolean isEmpty(){
return this.top==-1;
}
//压栈
public void push(int val){
if(isFull()){
throw new RuntimeException("此栈已满");
}
stack[++this.top]=val;
}
//弹栈
public int pop(){
if(isEmpty()){
throw new RuntimeException("此栈已空");
}
return stack[top--];
}
//查看栈中所有元素
public void listStack(){
if(isEmpty()){
throw new RuntimeException("空栈");
}
for(int i=0;i<stack.length;i++){
System.out.printf("stack[%d]=%d\n",i,stack[i]);
}
}
//栈中元素存在的个数
public int len(){
return this.top+1;
}
}
数据结构栈的实现(java)
最新推荐文章于 2023-03-23 12:20:36 发布