1.3 问题展现
2、酒店管理系统
2.1 题目要求
2.2 代码呈现
2.3 问题展现
1、数组模拟栈数据结构
===========
1.1 题目要求
1)这个栈可以存储java中的任何引用类型的数据;
2)在栈中提供push方法模拟压栈;(栈满了,要有提示信息)
3)在栈中提供pop方法模拟压栈;(栈空了,要有提示信息)
4)编写测试程序,new栈对象,调用push pop方法来模拟压栈弹栈操作;
5)假设栈的默认初始化容量是10;
1.2 代码呈现
public class Text {
public static void main(String[] args) {
//创建一个栈对象,初始化容量是10个
Stack s = new Stack();
s.push(“12345ty”);
s.push(new Object());
s.push(new Object());
s.push(new Object());
s.push(new Object());
s.pop();
s.pop();
s.pop();
s.pop();
s.pop();
s.pop();
//可以使用for循环进行压栈和弹栈
}
}
class Stack{
//存储任何引用类型数据的数组
private Object[] elements;
//有参构造方法
public Stack(Object[] elements) {
this.elements = elements;
}
//无参构造方法
public Stack() {
//一维数组动态初始化
//默认初始化容量为10
this.elements = new Object[10];
}
//栈帧(永远指向栈顶元素)
private int index=-1;
//压栈方法
public void push(Object obj){
if(this.index >= this.elements.length-1){
System.out.println(“栈内存已满,压栈失败”);
return;
}
index++;
elements[index] = obj;
System.out.println(obj + “元素,压栈成功,栈帧指向” + index);
}
//弹栈方法
public void pop(){
if(this.index <= -1) {
System.out.println(“栈内存已空,弹栈栈失败”);
}
else
System.out.println(elements[index] + “元素,弹栈成功,栈帧指向” + --index);
}
//static实例变量的get方法
public Object[] getElements() {
return elements;
}