用java代码实现一个栈并完成以下要求: (1)输入0123入栈后再出栈并打印输出; (2)对栈顶元素出栈后输出剩余元素并打印输出; (3)判断此时栈是否为空; (4)判断此时栈的长度; (5)判断此时栈顶元素大小。
时间: 2024-11-24 11:41:33 浏览: 27
在Java中,我们可以使用`java.util.Stack`类或者自定义数组来实现一个基本的栈。这里是一个简单的实现示例:
```java
import java.util.Stack;
public class CustomStack {
private int[] stackArray;
private int top; // 栈顶指针
public CustomStack(int capacity) {
this.stackArray = new int[capacity];
this.top = -1;
}
// 入栈操作
public void push(int value) {
if (top < stackArray.length - 1) {
top++;
stackArray[top] = value;
} else {
System.out.println("Stack is full, cannot push.");
}
}
// 出栈操作并返回值
public int pop() {
if (isEmpty()) {
return -1; // 栈空异常处理
} else {
int poppedValue = stackArray[top];
top--;
return poppedValue;
}
}
// 打印栈顶元素
public void printTop() {
if (!isEmpty()) {
System.out.println("Top element: " + stackArray[top]);
} else {
System.out.println("Stack is empty.");
}
}
// 判断栈是否为空
public boolean isEmpty() {
return top == -1;
}
// 获取栈的长度
public int size() {
return top + 1; // 包括栈顶元素
}
// 判断栈顶元素大小
public boolean isTopMax(int max) {
if (!isEmpty() && stackArray[top] > max) {
return true;
} else {
return false;
}
}
// 主函数测试
public static void main(String[] args) {
CustomStack customStack = new CustomStack(4);
customStack.push(1); // 入栈
customStack.push(2);
customStack.push(3);
System.out.println("After pushing: ");
customStack.printTop(); // 输出栈顶元素
customStack.pop();
customStack.printTop(); // 输出剩余栈顶元素
System.out.println("Is stack empty? " + customStack.isEmpty());
System.out.println("Stack length: " + customStack.size());
System.out.println("Is the current top element larger than 2? " + customStack.isTopMax(2));
}
}
```
这个程序首先创建了一个栈,并完成了你的所有要求。注意,如果栈满了,`push()`操作会抛出异常。在主函数中,我们演示了如何使用这些方法。
阅读全文