欢迎访问宙启技术站
智能推送

使用Java函数实现数据结构——堆栈和队列

发布时间:2023-06-19 05:13:43

堆栈和队列是计算机程序中常用的两种数据结构,它们各自具有特定的功能和特点,在不同场景下都有很好的应用。

堆栈(Stack)是一种后进先出(Last-In-First-Out,简称LIFO)的数据结构,它只允许在栈顶进行插入和删除操作。通常堆栈的应用场景包括:函数调用、表达式求值、符号匹配、逆波兰表达式等。

Java提供了Stack类来实现堆栈的操作。其常用的方法包括:

- push(Object obj):在栈顶插入一个元素

- pop():删除栈顶的元素,并返回该元素的值

- peek():查看栈顶的元素的值,但不删除该元素

- empty():判断栈是否为空

- search(Object obj):查找指定元素在栈中的位置,返回一个从栈顶开始计数的位置值,如果未找到则返回-1

下面是一个使用Java中Stack类实现的堆栈的例子:

import java.util.Stack;

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

        // 在堆栈中插入元素
        stack.push(1);
        stack.push(2);
        stack.push(3);
        stack.push(4);

        // 查看栈顶元素
        System.out.println("栈顶元素是:" + stack.peek());

        // 删除栈顶元素
        stack.pop();
        System.out.println("删除栈顶元素后,栈顶元素是:" + stack.peek());

        // 查找元素2的位置
        int index = stack.search(2);
        System.out.println("元素2在栈中的位置是:" + index);
    }
}

输出结果:

栈顶元素是:4
删除栈顶元素后,栈顶元素是:3
元素2在栈中的位置是:2

队列(Queue)是一种先进先出(First-In-First-Out,简称FIFO)的数据结构,类似于在银行排队时先进入队列的人先被服务。通常队列的应用场景包括:多线程任务调度、消息队列等。

Java提供了Queue接口和实现了该接口的类来实现队列的操作。其常用的方法包括:

- add(Object obj):在队列的末尾添加一个元素

- remove():删除队列头部的元素,并返回该元素的值

- peek():查看队列头部的元素的值,但不删除该元素

- isEmpty():判断队列是否为空

- size():获取队列中元素的个数

下面是一个使用Java中Queue接口实现的队列的例子:

import java.util.LinkedList;
import java.util.Queue;

public class QueueDemo {
    public static void main(String[] args) {
        Queue<Integer> queue = new LinkedList<>(); // 创建一个队列

        // 在队列中添加元素
        queue.add(1);
        queue.add(2);
        queue.add(3);
        queue.add(4);

        // 删除队列头部元素
        queue.remove();

        // 查看队列头部元素
        System.out.println("队列头部元素是:" + queue.peek());

        // 输出队列中的所有元素
        System.out.println("队列中的元素是:");
        for (Integer i : queue) {
            System.out.print(i + " ");
        }

        // 判断队列是否为空
        System.out.println("
队列是否为空:" + queue.isEmpty());

        // 获取队列中元素的个数
        System.out.println("队列中元素的个数是:" + queue.size());
    }
}

输出结果:

队列头部元素是:2
队列中的元素是:
2 3 4 
队列是否为空:false
队列中元素的个数是:3

可以看出,Java实现堆栈和队列都非常简单方便,只需要使用官方提供的Stack类和Queue接口及其实现类即可。在实际应用中,需要根据具体的场景选择使用堆栈还是队列。