题目要求
/*
* 编写程序,使用一维数组,模拟栈数据结构。
* 要求:
* 1、这个栈可以存储java中的任何引用类型的数据。
* 2、在栈中提供push方法模拟压栈。(栈满了,要有提示信息。)
* 3、在栈中提供pop方法模拟弹栈。(栈空了,要有提示信息。)
* 4、编写测试程序,new栈对象,调用push pop方法来模拟压栈弹栈的动作。
*/
方法实现
public class MyStack {
Object[] obj;
//定义栈帧
int index = 0;
//构造方法
public MyStack() {
}
public MyStack(Object[] obj) {
this.obj = obj; //给数组赋初始容量
}
//编写压栈push方法
public void push(Object obj) {
//使栈帧指向顶部对象
for(int i=0;i<this.obj.length;i++) {
if(this.obj[i]!=null) {
index++;
break; //break防止栈帧多次叠加
}
}
//判断栈是否存满
if(index == this.obj.length) {
System.out.println("栈满,无法压栈");
index = this.obj.length-1; //栈满后继续压栈栈帧仍会增加,故使栈帧保持不变
}
else {
this.obj[index] = obj; //若栈未满,则将对象赋值给栈帧指向的位置
for(int