用java实现一个栈,包涵栈的基本操作
时间: 2023-10-22 12:50:12 浏览: 83
当然可以!以下是一个用 Java 实现栈的例子,包含了栈的基本操作:
```java
public class Stack {
private int maxSize; // 栈的最大容量
private int top; // 栈顶指针
private int[] stackArray; // 存储栈元素的数组
// 构造方法,初始化栈
public Stack(int size) {
maxSize = size;
stackArray = new int[maxSize];
top = -1; // 初始时栈为空,top 指针为 -1
}
// 入栈操作
public void push(int value) {
if (isFull()) {
System.out.println("栈已满,无法入栈!");
return;
}
stackArray[++top] = value;
System.out.println("入栈成功:" + value);
}
// 出栈操作
public int pop() {
if (isEmpty()) {
System.out.println("栈为空,无法出栈!");
return -1;
}
int value = stackArray[top--];
System.out.println("出栈成功:" + value);
return value;
}
// 查看栈顶元素
public int peek() {
if (isEmpty()) {
System.out.println("栈为空,无法查看栈顶元素!");
return -1;
}
return stackArray[top];
}
// 判断栈是否为空
public boolean isEmpty() {
return top == -1;
}
// 判断栈是否已满
public boolean isFull() {
return top == maxSize - 1;
}
// 获取栈中元素个数
public int size() {
return top + 1;
}
}
```
使用示例:
```java
public class Main {
public static void main(String[] args) {
Stack stack = new Stack(5);
stack.push(1);
stack.push(2);
stack.push(3);
stack.push(4);
stack.push(5);
System.out.println("栈的大小:" + stack.size());
System.out.println("栈顶元素:" + stack.peek());
while (!stack.isEmpty()) {
stack.pop();
}
System.out.println("栈是否为空:" + stack.isEmpty());
}
}
```
这个例子实现了一个基本的栈结构,包含了入栈、出栈、查看栈顶元素、判断栈是否为空、判断栈是否已满以及获取栈中元素个数等基本操作。你可以根据需要进行修改和扩展。
阅读全文