使用一维数组模拟栈数据结构
时间: 2023-10-17 12:21:00 浏览: 99
使用一个数组实现三个栈的数据结构
以下是使用一维数组模拟栈的示例代码:
```java
public class Stack {
private int[] array;
private int top; // 栈顶指针
public Stack(int capacity) {
array = new int[capacity];
top = -1;
}
// 入栈
public void push(int value) {
if (top == array.length - 1) {
System.out.println("栈已满,无法入栈。");
return;
}
array[++top] = value;
}
// 出栈
public int pop() {
if (top == -1) {
System.out.println("栈为空,无法出栈。");
return -1;
}
return array[top--];
}
// 获取栈顶元素
public int peek() {
if (top == -1) {
System.out.println("栈为空,无法获取栈顶元素。");
return -1;
}
return array[top];
}
// 判断栈是否为空
public boolean isEmpty() {
return top == -1;
}
// 判断栈是否已满
public boolean isFull() {
return top == array.length - 1;
}
}
```
使用示例:
```java
Stack stack = new Stack(5);
stack.push(1);
stack.push(2);
stack.push(3);
System.out.println("栈顶元素为:" + stack.peek()); // 输出:3
stack.pop();
System.out.println("栈顶元素为:" + stack.peek()); // 输出:2
System.out.println("栈是否为空:" + stack.isEmpty()); // 输出:false
System.out.println("栈是否已满:" + stack.isFull()); // 输出:false
stack.push(4);
stack.push(5);
stack.push(6); // 输出:栈已满,无法入栈。
stack.pop();
stack.pop();
stack.pop();
stack.pop();
stack.pop();
stack.pop(); // 输出:栈为空,无法出栈。
```
阅读全文