MyStack类:
package com.zg.firstdemo;
public class MyStack {
//栈帧,每加一个元素,针栈+1,每减一个元素,针栈-1
private int index;
//定义一个一维数组模拟内存大小
private Object[] elements ;
//初始化内存大小和栈帧
public MyStack() {
this.index = -1;
this.elements=new Object[5];
}
//定义压栈方法
public void Pop(Object a){
if (index>=elements.length-1){
System.out.println("栈已满,无法继续压栈");
return;
}
index++;
elements[index] = a;
System.out.println("压栈:"+a+"\t"+"元素成功,栈帧指向"+index);
}
//定义弹栈方法
public void Push(){
if (index<0){
System.out.println("栈已空,无法继续弹栈");
return;
}
System.out.print("弹栈:"+elements[index]+"\t"+"元素成功");
//弹栈成功后将最后一个元素变为null
elements[index]=null;
index--;
System.out.println("栈帧指向"+index);
}
//设置set和get方法
public int getIndex() {
return index;
}
public void setIndex(int index) {
this.index = index;
}
public Object[] getElements() {
return elements;
}
public void setElements(Object[] elements) {
this.elements = elements;
}
}
MyStackTest类:
package com.zg.firstdemo;
public class MyStackTest {
public static void main(String[] args) {
MyStack myStack = new MyStack();
myStack.Pop("我爱中国");
myStack.Pop("湖北工程学院");
myStack.Push();
myStack.Pop("湖北工程学院");
myStack.Pop(821);
myStack.Pop(new Object());
myStack.Pop(new Object());
System.out.println("============================");
myStack.Pop(new Object());
myStack.Push();
myStack.Push();
myStack.Push();
myStack.Push();
myStack.Push();
myStack.Push();
System.out.println("============================");
myStack.Pop("我爱中国");
for (int i = 0; i < myStack.getElements().length; i++) {
System.out.println(myStack.getElements()[i]);
}
}
}
运行截图: