JAVA中用数组模拟对栈的使用
JAVA中模拟对栈的使用。
小白,第一次写博客,希望大家可以多多提意见。
这是我自己写的一个用java中的数组对栈的模拟使用,写了3个方法,压栈弹栈和对栈中内容的打印输出,用数组的长度来模拟内存的长度,写了一个Object 类型的数组,用数组的长度来模拟内存的长度。
public class ceshi {
public static void main(String[] args) {
MyStack myStack = new MyStack(5);
Object object = new Object();
Object object1 = new Object();
Object object2 = new Object();
Object object3 = new Object();
Object object4 = new Object();
Object object5 = new Object();
myStack.push(object);
myStack.push(object1);
myStack.push(object2);
myStack.push(object3);
myStack.push(object4);
myStack.push(object5);
myStack.pop();
myStack.pop();
myStack.pop();
myStack.pop();
myStack.pop();
myStack.pop();
myStack.dayin();
}
}
class MyStack{
Object[] elements; //数组
private int index; //栈帧
private int length;//栈的长度
public Object[] getElements() {
return elements;
}
public void setElements(Object[] elements) {
this.elements = elements;
}
public int getIndex() {
return index;
}
public void setIndex(int index) {
this.index = index;
}
public int getLength() {
return length;
}
public void setLength(int length) {
this.length = length;
}
public MyStack() {
}
public MyStack(int length) { //把数组长度传进去的构造方法
this.length = length;
elements = new Object[length];
index = -1;
}
public void push(Object object){ //压栈方法
if (index<4){
index++;
elements[index] = object;
System.out.println(object+"已成功入栈");
}
else {
System.out.println("栈已满,压栈失败");
}
}
public void pop(){ //退栈方法
if (index>-1){
elements[index] = null;
index--;
System.out.println("已成功弹栈");
}
else {
System.out.println("栈已空,弹栈失败");
}
}
public void dayin(){ //打印方法
System.out.println("栈的长度是:"+length);
System.out.println("栈帧指向:"+index);
System.out.print("栈中的元素是:");
for (int i=0;i<=index;i++){
System.out.print(elements[i]+" ");
}
}
}
结果截图:
图片: