实现顺序栈的初始化,多个元素入栈,读栈顶元素,全部出栈,单个元素入栈,单个元素出栈,栈空判断
给你一段java代码用作参考:
public class MyStack {
private Object[] datas ;//Object类型的数组,用来存储堆栈的实际数据
private int topIndex = -1;//用来记录堆栈栈顶的位置
private int size;//堆栈的容量
//默认无参构造,容量为100
public MyStack(){
this.datas = new Object[100];
this.size = 100;
}
//用户指定堆栈的容量,构造堆栈
public MyStack(int size){
this.datas = new Object[size];
this.size = size;
}
//判断堆栈是否为空
public boolean isEmpty(){
if(topIndex == -1){
return true;
}
return false;
}
//入栈操作
public void push(Object obj){
if(topIndex == size-1){
System.out.println("当前堆栈已满,无法再加入新元素:" + obj);
return;
}
//栈顶位置加一
topIndex++;
//将要入栈的元素,放入数组中新的栈顶位置
datas[topIndex] = obj;
}
//出栈操作
public Object pop(){
if(isEmpty()){
return null;
}
//取得栈顶当前的元素
Object obj = datas[topIndex];
//将栈顶位置减一
topIndex--;
//返回取出来的栈顶元素
return obj;
}
//获取栈顶元素使用
public Object peek(){
return null;
}
}