【数据结构与算法】2、栈和队列以及在java中的使用

上一小节我介绍了数组这种数据结构,并且二次封装了数组,可以添加元素、删除元素、查看元素等等,这一节我主要介绍栈和队列。
栈也是一种线性结构,相比数组来说,栈的操作会少一些,只能从一端添加元素和取出元素,后进先出LIFO,这一端被称为栈顶

一、java中的栈Stack,后进先出

在上一小节实现的数组上,如果我可以从数组尾添加元素和数组尾删除元素,那么此时数组就可以当作一个栈来使用了。
在这里插入图片描述
现在我来介绍java内置的栈Stack这种数据结构。

    public static void main(String[] args) {
        Stack<String> stack = new Stack<String>();
        stack.push("a"); // 进栈
        stack.push("b");
        System.out.println(stack); // [a, b]
        System.out.println(stack.pop());  // 出栈 b
        System.out.println(stack); // [a]
        System.out.println(stack.peek()); // 查看栈顶 a
        System.out.println(stack); // [a]
    }

二、java中的队列Queue,先进先出

队列是元素每次都加到一端,从另一端取出,先进先出。
在这里插入图片描述

    public static void main(String[] args) {
        Queue<String> queue=new LinkedList<String>();
        queue.offer("a"); // 添加元素
        queue.offer("b");
        queue.offer("c");
        System.out.println(queue); // [a, b, c]
        System.out.println(queue.poll()); // 取出元素 a
        System.out.println(queue); // [b, c]
        System.out.println(queue.peek()); // 查看下一个该取出的元素
        System.out.println(queue); // [b, c]
    }
发布了28 篇原创文章 · 获赞 1 · 访问量 1841

猜你喜欢

转载自blog.csdn.net/m0_46130323/article/details/104457228