当前位置:实例文章 » JAVA Web实例» [文章]Java当中的栈

Java当中的栈

发布人:shili8 发布时间:2025-02-13 22:15 阅读次数:0

**Java 中的栈**

在计算机科学中,栈是一种线性数据结构,它遵循后进先出(LIFO)的原则。也就是说,在栈中最后添加的元素将首先被移除。在 Java 中,我们可以使用数组或链表来实现栈。

**栈的基本操作**

栈提供了以下几个基本操作:

* **push(E e)**: 将元素 E 添加到栈顶。
* **pop()**: 移除栈顶元素,并返回该元素。
* **peek()**: 返回栈顶元素,但不移除。
* **isEmpty()**: 判断栈是否为空。
* **size()**: 返回栈中元素的数量。

**实现栈的类**

我们可以创建一个名为 `Stack` 的类来实现这些基本操作。下面是 Java 中 `Stack` 类的一个示例:

javapublic class Stack {
 private Node top; // 栈顶指针 private int size; // 栈中元素数量 public Stack() {
 this.top = null;
 this.size =0;
 }

 // 将元素添加到栈顶 public void push(E e) {
 Node newNode = new Node(e);
 if (top == null) {
 top = newNode;
 } else {
 newNode.next = top;
 top = newNode;
 }
 size++;
 }

 // 移除栈顶元素并返回该元素 public E pop() {
 if (isEmpty()) {
 throw new RuntimeException("Stack is empty");
 }
 Node temp = top;
 top = top.next;
 size--;
 return temp.data;
 }

 // 返回栈顶元素,但不移除 public E peek() {
 if (isEmpty()) {
 throw new RuntimeException("Stack is empty");
 }
 return top.data;
 }

 // 判断栈是否为空 public boolean isEmpty() {
 return size ==0;
 }

 // 返回栈中元素的数量 public int size() {
 return size;
 }

 private static class Node {
 E data;
 Node next;

 public Node(E e) {
 this.data = e;
 this.next = null;
 }
 }
}


**使用栈**

我们可以通过以下方式使用 `Stack` 类:

javapublic class Main {
 public static void main(String[] args) {
 Stack stack = new Stack();
 // 将元素添加到栈中 stack.push(1);
 stack.push(2);
 stack.push(3);

 System.out.println("栈中的元素数量:" + stack.size()); // 输出:3 // 移除栈顶元素并返回该元素 int topElement = stack.pop();
 System.out.println("移除的栈顶元素:" + topElement); // 输出:3 // 返回栈顶元素,但不移除 int peekElement = stack.peek();
 System.out.println("栈顶元素(不移除):" + peekElement); // 输出:2 // 判断栈是否为空 boolean isEmpty = stack.isEmpty();
 System.out.println("栈是否为空:" + isEmpty); // 输出:false // 返回栈中元素的数量 int size = stack.size();
 System.out.println("栈中的元素数量:" + size); // 输出:2 }
}


**总结**

在本文中,我们介绍了 Java 中的栈及其基本操作。我们创建了一个名为 `Stack` 的类来实现这些基本操作,并提供了使用栈的示例代码。通过阅读本文,读者可以了解栈的概念、基本操作和如何使用栈类来实现后进先出(LIFO)的数据结构。

相关标签:java开发语言
其他信息

其他资源

Top