数组:一维数组如何模拟栈数据结构?
数组练习
//Mystack类
public class Mystack {
//使用Object可存储任何引用类型的data,模拟栈
//封装1:属性私有化
private Object [] elements;
//模拟栈帧
private int index =-1;
public Mystack(){
//设置默认初始化容量为15;
this.elements = new Object[15];
}
//封装2:get和set方法
public Object [] getElements(){
return elements;
}
public void setElements(Object[] elements){
this.elements = elements;
}
//压栈
public void push(Object obj){
//若栈帧大等于数组长度-1,则栈已满
if(this.index>=this.elements.length-1){
System.out.println("压栈失败");
return;
}
//运行至此,栈未满
this.index++;
//栈帧向上移动一个位置
this.elements[index] = obj;
System.out.println("压栈"+obj+"成功,栈帧—>"+index);
}
//弹栈
public void pop(){
//若栈帧小于零,则栈已空,结束
if(this.index<0){
System.out.println("弹栈失败,已空");
return ;
}
//运行到这说明,此时栈未空
System.out.println("弹栈"+elements [index]+"元素成功");
this.index--;
System.out.println("栈帧—>"+index);
}
}
//测试Mystack类
public class MystackTest {
public static void main(String[] args){
//创建栈对象
Mystack stack = new Mystack();
//调用方法压栈
for(int i =0;i<16;i++) {
stack.push(new Object());
}
//调用方法弹栈
for(int i =0;i<16;i++) {
stack.pop();
}
}
}
//结果请自行运行