怎么用数组表示栈程序

时间:2025-01-27 06:31:11 单机游戏

使用数组表示栈是一种常见的方法,可以通过一个数组来存储数据,并使用一个变量来记录栈顶的位置。以下是一个简单的Java示例,展示了如何使用数组实现栈的基本操作:

```java

public class ArrayStack {

private int[] stack; // 存储数据的数组

private int top; // 栈顶的位置

// 初始化栈的大小

public ArrayStack(int size) {

stack = new int[size];

top = -1; // 栈为空时,top 为 -1

}

// 压栈操作

public void push(int value) {

if (top == stack.length - 1) {

System.out.println("栈满了,压不进去了!");

} else {

stack[++top] = value;

}

}

// 弹栈操作

public int pop() {

if (isEmpty()) {

System.out.println("栈为空,无法弹出元素!");

return -1;

} else {

return stack[top--];

}

}

// 查看栈顶

public int peek() {

if (isEmpty()) {

System.out.println("栈为空,无法查看栈顶元素!");

return -1;

} else {

return stack[top];

}

}

// 检查栈是否为空

public boolean isEmpty() {

return top == -1;

}

// 获取栈的大小

public int size() {

return top + 1;

}

public static void main(String[] args) {

ArrayStack stack = new ArrayStack(5);

stack.push(1);

stack.push(2);

stack.push(3);

System.out.println("栈顶元素: " + stack.peek()); // 输出: 3

System.out.println("弹出元素: " + stack.pop()); // 输出: 3

System.out.println("栈顶元素: " + stack.peek()); // 输出: 2

System.out.println("栈的大小: " + stack.size()); // 输出: 2

}

}

```

解释

数组存储:

使用一个数组 `stack` 来存储栈中的元素。

栈顶指针:

使用一个整数 `top` 来记录栈顶的位置。初始时,栈为空,`top` 为 -1。

压栈操作:

`push(int value)` 方法将元素添加到栈顶。如果栈已满,则输出提示信息。

弹栈操作:

`pop()` 方法移除并返回栈顶元素。如果栈为空,则输出提示信息。

查看栈顶:

`peek()` 方法返回栈顶元素但不移除它。如果栈为空,则输出提示信息。

检查栈是否为空:

`isEmpty()` 方法检查栈是否为空,返回布尔值。

获取栈的大小:

`size()` 方法返回栈中元素的数量。

动态数组

如果需要动态调整数组的大小,可以参考以下代码: