package 栈;
public class ArrayStackDemo {
public static void main(String[] args) {
ArrayStack arrayStack = new ArrayStack(3);
System.out.println(arrayStack.isEmpty());
arrayStack.push(1);
arrayStack.push(2);
arrayStack.push(3);
System.out.println(arrayStack.isFull());
arrayStack.show();
System.out.println(arrayStack.pop());
}
}
/**
* 使用数组模拟栈,内部封装了对栈的各种操作
*/
class ArrayStack {
//定义数组存放栈
private final int[] stack;
private final int maxSize;
private int top;
public ArrayStack(int maxSize) {
this.maxSize = maxSize;
stack = new int[this.maxSize];
top = -1;//指向栈顶元素,空栈时没有元素初始化为-1
}
/**
* 判断栈满
*
* @return 是否栈满
*/
public boolean isFull() {
return top == maxSize - 1;
}
/**
* 判断栈空
*
* @return 是否栈空
*/
public boolean isEmpty() {
return top == -1;
}
/**
* 入栈
*
* @param value 值
*/
public void push(int value) {
if (isFull())
throw new RuntimeException("栈满");
stack[++top] = value;
}
/**
* 出栈
*
* @return 出栈元素的值
*/
public int pop() {
if (isEmpty())
throw new RuntimeException("栈空");
return stack[top--];
}
/**
* 显示当前栈内元素(栈顶->栈底)
*/
public void show() {
for (int i = top; i >= 0; i--) {
System.out.print(stack[i] + " ");
}
System.out.println();
}
}
Java实现使用数组模拟栈
最新推荐文章于 2024-10-05 12:07:50 发布
这个博客展示了如何使用Java实现一个基于数组的栈数据结构。ArrayStack类包含了入栈、出栈、查看栈是否为空、是否已满以及显示栈内元素的方法。在main方法中,通过实例化ArrayStack并进行压栈、弹栈操作,演示了栈的基本功能。
摘要由CSDN通过智能技术生成