请编写一个“堆栈”的程序(Java),为“堆栈”绘制一个STD,并根据STD方法设计测试用例。
时间: 2023-05-31 15:07:31 浏览: 53
好的,这是一个关于Java堆栈的程序,包括绘制STD方法和设计测试用例:
1. 堆栈代码:
public class Stack {
private int[] data;
private int top;
// 初始化堆栈
public Stack(int size) {
data = new int[size];
top = -1;
}
// 入栈操作
public void push(int value) {
if (isFull()) {
System.out.println("堆栈已满,无法进行入栈操作。");
return;
}
data[++top] = value;
}
// 出栈操作
public int pop() {
if (isEmpty()) {
System.out.println("堆栈为空,无法进行出栈操作。");
return -1;
}
return data[top--];
}
// 判断堆栈是否为空
public boolean isEmpty() {
return top == -1;
}
// 判断堆栈是否已满
public boolean isFull() {
return top == data.length - 1;
}
}
2. 绘制STD方法:
public static void drawStack(int[] data, int top) {
System.out.println("当前堆栈情况:");
for (int i = top; i >= 0; i--) {
System.out.println(data[i]);
}
}
3. 设计测试用例:
// 创建一个大小为10的堆栈
Stack stack = new Stack(10);
// 入栈操作
stack.push(5);
stack.push(10);
stack.push(15);
// 输出堆栈情况
drawStack(stack.getData(), stack.getTop());
// 出栈操作
stack.pop();
// 再次输出堆栈情况
drawStack(stack.getData(), stack.getTop());
// 再次入栈操作
stack.push(20);
// 最终输出堆栈情况
drawStack(stack.getData(), stack.getTop());
这样就可以进行测试了,可以根据需要进行修改和拓展。希望对你有所帮助!