java常见的数据结构 栈


在Java中,栈(Stack)是一种常见的数据结构,它遵循后进先出(Last-In-First-Out,LIFO)的原则。Java提供了java.util.Stack类来实现栈数据结构。以下是一些常见的栈操作:

  1. void push(E element): 将元素压入栈顶。
  2. E pop(): 弹出并返回栈顶元素。
  3. E peek(): 返回栈顶元素,但不移除它。
  4. boolean empty(): 检查栈是否为空。
  5. int search(Object element): 在栈中搜索指定元素,并返回它相对于栈顶的位置索引(从1开始计数),如果未找到则返回-1。

以下是一个使用java.util.Stack类的示例代码:

import java.util.Stack;

public class StackExample {
    public static void main(String[] args) {
        // 创建一个栈对象
        Stack<Integer> stack = new Stack<>();

        // 将元素压入栈顶
        stack.push(10);
        stack.push(20);
        stack.push(30);

        // 打印栈顶元素
        System.out.println("Top element: " + stack.peek());

        // 弹出并打印栈顶元素
        int topElement = stack.pop();
        System.out.println("Popped element: " + topElement);

        // 打印栈的大小
        System.out.println("Stack size: " + stack.size());

        // 检查栈是否为空
        System.out.println("Is stack empty? " + stack.empty());

        // 遍历栈元素
        System.out.println("Stack elements:");
        for (Integer element : stack) {
            System.out.println(element);
        }
    }
}

输出结果:

Top element: 30
Popped element: 30
Stack size: 2
Is stack empty? false
Stack elements:
20
10

这是一个简单的栈示例,展示了如何使用java.util.Stack类进行栈操作,包括元素的压入、弹出、查看栈顶元素、检查栈是否为空以及遍历栈元素。栈在许多应用场景中非常有用,如表达式求值、深度优先搜索、括号匹配等。


原文链接:codingdict.net