要求:
首先,我们需要创建并初始化一维数组,由于数组可以存放任何类型的数据,所以我们采用Object数组,并对其经行初始化。
public class MyStack {
private Object[] elements;
//栈帧。指向第一个元素
private int index=-1;
//无参构造方法,默认调用为10
public MyStack() {
this.elements=new Object[10];
}
public MyStack(Object[] elements) {
this.elements = elements;
}
public Object[] getElements() {
return elements;
}
public void setElements(Object[] elements) {
this.elements = elements;
}
}
同时我们还需创建一个int型变量,初始值为-1,来判断数组容量是否超出。
接下来,模拟压栈方法。
//这个一个压栈的方法
public void push(Object obj){
if (this.index>=this.elements.length-1){
System.out.println("栈已满,程序结束");
return;
}
this.index++;
this.elements[index]=obj;
System.out.println("恭喜"+obj+"压栈成功,栈帧指向"+index);
}
这里通过index变量来实现对栈内元素数量经行判断。
接下来,对程序经行压栈测试。
public class MyStackTest {
public static void main(String[] args) {
//创建一个栈对象
MyStack stack=new MyStack();
//调用方法
stack.push(new Object());
stack.push(new Object());
stack.push(new Object());
}
}
测试结果
接下来经行弹栈方法模拟
//这是一个弹栈方法
public void pop(){
if (this.index<0){
System.out.println("栈以空,弹栈失败");
}
//栈没有空
System.out.println("弹栈"+elements[index]+"元素成功");
index--;
System.out.println("弹栈成功,栈帧指向"+elements[index]);
}
测试弹栈与压栈方法