要求:
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;
}
}
Java实现基本栈操作
该博客介绍了如何使用Java实现一个基本的栈数据结构,包括存储任意引用类型数据、压栈和弹栈操作。栈满时会提示压栈失败,栈空时提示弹栈失败。程序包含push和pop方法,以及相应的测试程序。
5万+

被折叠的 条评论
为什么被折叠?



