要求:
1、这个栈可以存储java中的任何引用类型的数据。
2、在栈中提供push方法模拟压栈。(栈满了要有信息提示)
3、在栈中提供pop方法模拟弹栈。(栈空了要有信息提示)
4、编写测试程序。
(分别有程序截图以及程序文本。)
=========================================================================
以下为程序截图:
程序测试方法
=========================================================================
以下为程序为本:
package com.bj.javese.array.homework; public class Stack { //定义一个Object类型的数组,模拟栈 Object[] objects; //定义一个int类型的变量,模拟栈帧 int index; //无参构造 public Stack() { //调用无参构造时,给objects数组长度赋值为10 this.objects = new Object[10]; //调用无参构造时,给index赋值-1 this.index = -1; } //定义一个push方法,模拟压栈 public void push(Object obj){ //判断栈帧指向栈中哪个元素,如果栈帧指向的元素位置大于了数组的长度 if (this.index >= objects.length - 1){ //输出提示语句 System.out.println("栈已满,压栈失败。"); //结束方法 return; } //程序执行到这一步,说明数组模拟的栈中还有内存,此时栈帧要先自加一 ++this.index; //把栈帧指向的元素放入栈中 objects[this.index] = obj; //打印输出压入栈中的元素以及栈帧指向 System.out.println("压栈" + objects[this.index] + "元素成功,栈帧指向" + index); } //定义一个pop方法,模拟弹栈 public void pop(){ //判断栈帧指向栈中哪个元素,如果栈帧指向的元素位置小于了数组的长度 if (this.index < 0){ //输出提示语句 System.out.println("栈已空,弹栈失败。"); //结束方法 return; } //打印输出 System.out.print("弹栈" + objects[this.index] + "元素成功"); //程序执行到这一步,说明数组模拟的栈中还有元素,此时栈帧要先把指向的元素弹出,然后自减一 this.index--; //打印输出 System.out.println("栈帧指向" + index); } public Object[] getObjects() { return objects; } public void setObjects(Object[] objects) { this.objects = objects; } public int getIndex() { return index; } public void setIndex(int index) { this.index = index; } }