java顺序栈的实现代码怎么写

avatar
作者
猴君
阅读量:1

以下是一个简单的Java顺序栈的实现代码:

public class SeqStack<T> {     private int maxSize; // 栈的最大容量     private int top; // 栈顶指针     private Object[] stackArray; // 存储元素的数组      // 构造方法     public SeqStack(int maxSize) {         this.maxSize = maxSize;         this.top = -1; // 初始化栈顶指针为-1         this.stackArray = new Object[maxSize];     }      // 入栈操作     public void push(T element) {         if (isFull()) {             throw new RuntimeException("Stack is full!");         }         stackArray[++top] = element;     }      // 出栈操作     public T pop() {         if (isEmpty()) {             throw new RuntimeException("Stack is empty!");         }         @SuppressWarnings("unchecked")         T element = (T) stackArray[top];         stackArray[top--] = null; // 将栈顶元素置为null,便于垃圾回收         return element;     }      // 获取栈顶元素     public T peek() {         if (isEmpty()) {             throw new RuntimeException("Stack is empty!");         }         @SuppressWarnings("unchecked")         T element = (T) stackArray[top];         return element;     }      // 判断栈是否为空     public boolean isEmpty() {         return top == -1;     }      // 判断栈是否已满     public boolean isFull() {         return top == maxSize - 1;     }      // 获取栈的大小(当前元素个数)     public int size() {         return top + 1;     } } 

可以使用以下代码测试顺序栈的功能:

public class Main {     public static void main(String[] args) {         SeqStack<Integer> stack = new SeqStack<>(5);                  stack.push(1);         stack.push(2);         stack.push(3);         stack.push(4);         stack.push(5);                  System.out.println("栈顶元素:" + stack.peek()); // 输出:5                  stack.pop();         stack.pop();                  System.out.println("栈顶元素:" + stack.peek()); // 输出:3                  System.out.println("栈是否为空:" + stack.isEmpty()); // 输出:false         System.out.println("栈的大小:" + stack.size()); // 输出:3     } } 

运行结果为:

栈顶元素:5 栈顶元素:3 栈是否为空:false 栈的大小:3 

这个代码实现了一个简单的顺序栈,并提供了入栈、出栈、获取栈顶元素、判断栈是否为空、判断栈是否已满、获取栈的大小等功能。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!