Java常见数据结构“ 栈与队列 ”学完就去编程!!!

一、栈(Stack):

栈是一种后进先出(LIFO,Last In First Out)的数据结构,类似于现实生活中的一叠盘子,最后放入的盘子最先被取出。

主要方法和特点:
  1. push(E e): 将元素推入栈顶。
  2. pop(): 弹出栈顶元素并返回。
  3. peek(): 返回但不删除栈顶元素。
  4. isEmpty(): 判断栈是否为空。
  5. search(Object o): 查找指定元素在栈中的位置,如果存在返回位置(从1开始),不存在返回-1。

栈的常见应用包括函数调用的管理、表达式求值、浏览器的历史记录等。

示例代码:
import java.util.Stack;public class Main {public static void main(String[] args) {Stack<Integer> stack = new Stack<>();stack.push(1);stack.push(2);stack.push(3);System.out.println("Top element: " + stack.peek()); // Output: 3while (!stack.isEmpty()) {System.out.println(stack.pop());}}
}

二、队列(Queue):

队列是一种先进先出(FIFO,First In First Out)的数据结构,类似于排队购物时先来的人先付款,后来的人后付款。

主要方法和特点:
  1. offer(E e): 将元素添加到队列末尾。
  2. poll(): 移除并返回队列头部的元素。
  3. peek(): 返回但不移除队列头部的元素。
  4. isEmpty(): 判断队列是否为空。
  5. size(): 返回队列中的元素个数。

队列的常见应用包括任务调度、消息传递、广度优先搜索(BFS)等。

示例代码:
import java.util.LinkedList;
import java.util.Queue;public class Main {public static void main(String[] args) {Queue<Integer> queue = new LinkedList<>();queue.offer(1);queue.offer(2);queue.offer(3);System.out.println("First element: " + queue.peek()); // Output: 1while (!queue.isEmpty()) {System.out.println(queue.poll());}}
}

三、Java中的栈和队列:

在Java中,栈和队列都有现成的实现类。常用的栈实现类是 java.util.Stack,而常用的队列实现类是 java.util.Queue 接口的各种实现,比如 java.util.LinkedListjava.util.ArrayDeque 等。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/736446.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

突破编程_C++_设计模式(模板方法模式)

1 模板方法模式的基本概念 C 模板方法模式是一种行为设计模式&#xff0c;它在一个操作中定义算法的骨架&#xff0c;而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下重新定义算法的某些特定步骤。在C中&#xff0c;模板方法模式通常通过使用虚函数和…

MySQl基础入门⑦

上一章知识内容 分析数据且区分数据类型 看下表分析数据的特征&#xff0c;根据其特征确定相应的数据类型。 分析以上表格特征&#xff0c;确定数据类型&#xff0c;并对数据进行分类。分析数据后按固定长度字符串、可变长度字符串、整数、固定精度小数和日期时间数据类型对数…

【树】-Lc101-对称二叉树(一棵树是否是另一棵树的子树的变形)

写在前面 最近想复习一下数据结构与算法相关的内容&#xff0c;找一些题来做一做。如有更好思路&#xff0c;欢迎指正。 目录 写在前面一、场景描述二、具体步骤1.环境说明2.代码 写在后面 一、场景描述 对称二叉树。给给定一个二叉树&#xff0c;检查它是否是镜像对称的。 例…

spring-data-elasticsearch官方文档解读(部分)

Spring Data Elasticsearch 这里主要学习的是4.4.16版本的文档 1. 版本 下表显示了 Spring Data 发行版系列使用的 Elasticsearch 版本和其中包含的 Spring Data Elasticsearch 版本&#xff0c;以及引用该特定 Spring Data 发行版系列的 Spring Boot 版本。给出的 Elastics…

keepalived原理以及lvs、nginx跟keeplived的运用

keepalived基础 keepalived的原理是根据vrrp协议&#xff08;主备模式&#xff09;去设定的 vrrp技术相关原理 状态机&#xff1b; 优先级0~255 心跳线1秒 vrrp工作模式 双主双备模式 VRRP负载分担过程 vrrp安全认证&#xff1a;使用共享密匙 keepalived工具介绍 keepal…

Qt 绘制中的视口(setViewport)和窗口(setWindow)

重点 &#xff1a; 1.绘制&#xff08;QPainter&#xff09;可以设置视口&#xff0c;视口下设置窗口&#xff0c;而绘制的构件是以窗口为坐标系进行绘画。 2.先根据绘图设备的物理坐标系的矩形位置&#xff0c;设置视图视口setViewport&#xff0c;然后在以视口为区域去设置…

【Leetcode刷题】1360. 日期之间隔几天

1360. 日期之间隔几天 简单 请你编写一个程序来计算两个日期之间隔了多少天。 日期以字符串形式给出&#xff0c;格式为 YYYY-MM-DD&#xff0c;如示例所示。 示例 1&#xff1a; 输入&#xff1a;date1 “2019-06-29”, date2 “2019-06-30” 输出&#xff1a;1 示例 2…

博客杂谈---程序员如何选择职业赛道?

程序员的职业赛道就像是一座迷宫&#xff0c;有前端的美丽花园&#xff0c;后端的黑暗洞穴&#xff0c;还有数据科学的神秘密室。你准备好探索这个充满挑战和机遇的迷宫了吗&#xff1f;快来了解如何选择职业赛道吧&#xff01; &#xff08;1&#xff09;考虑因素 话题虽然指…

Web题记

[CISCN 2019华北Day2]Web1 告诉我们想要的东西在flag表和flag字段&#xff0c;那应该是sql注入&#xff0c;先试试 试了一些发现会被检查到&#xff0c;随便传数字 除了1和2有返回结果&#xff0c;其余的都报错&#xff0c;应该是数字型注入&#xff0c;抓包看看过滤了哪些 这个…

在DeepLn环境中安装VLLM与ChatGLM3

DeepLn | 智慧算力触手可及是一个挺便宜的算力租用平台&#xff0c;里面有大量的显卡可以租用。唯一美中不足的是&#xff0c;提供的pytorch版本低&#xff0c;只支持到2.01&#xff0c;为了匹配vllm&#xff0c;需要手动安装指定版本的pytorch。 vllm介绍 总体而言&#xff0…

如何关闭vscode灰色代码提示

vscode编辑rust代码时&#xff0c;rust-analyze插件会默认给代码添加一些提示&#xff08;灰色代码&#xff09;&#xff0c;这部分代码 不会保存到文件&#xff0c;仅仅是为了你方便看各种变量的定义等。 但有时会觉得代码很乱&#xff0c;所以按以下方法可以把他隐藏。 1&am…

接收端编程、UDP编程练习、wireshrak抓包工具、UDP包头

我要成为嵌入式高手之3月6日Linux高编第十六天&#xff01;&#xff01; ———————————————————————————— 学习笔记 接收端 recvfrom #include <sys/types.h> #include <sys/socket.h> ssize_t recvfrom(int sockfd, void *buf, si…

JVM(Java虚拟机)概述

1. JVM的定义和作用 JVM&#xff08;Java Virtual Machine&#xff09;是一个能够运行Java字节码的虚拟计算机。它是Java平台的核心组成部分&#xff0c;负责执行编译后的Java程序&#xff0c;提供跨平台运行的能力。JVM使得Java程序可以在任何安装了JVM的操作系统上运行&#…

【50天50个项目】旋转导航页面

实现效果&#xff1a; HTML <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><link rel"stylesheet&…

asp飞机订票-57-(说明+代码)

演示查看 http://pc.3q2008.Com/3q2008_Com/hkdp 目 录 1&#xff0e; 系统规划 3 1&#xff0e;1 行业背景 3 1&#xff0e;2 行业现状 3 1.2.1用户注册 3 1.2.2航班查询 3 1.2.3在线订票 3 1.2.4在线支付 3 1.2.5电子客票 4 1.2.6其它辅助产品与服务 4 1&#xff0e;3 需求…

[Mac软件]Adobe Illustrator 2024 28.3 intel/M1/M2/M3矢量图制作软件

应用介绍 Adobe Illustrator 是行业标准的矢量图形应用程序&#xff0c;可以为印刷、网络、视频和移动设备创建logos、图标、绘图、排版和插图。数以百万计的设计师和艺术家使用Illustrator CC创作&#xff0c;从网页图标和产品包装到书籍插图和广告牌。 绘制任意大小的标志 拥…

Timus#1005

C【动态规划】 #include<iostream> #include<vector> using namespace std; int main() {int n;cin >> n;vector<int> dp(100000 * 20);vector<int> a(n);int ans 0, cur 0;for (int i 0; i < n; i){cin >> a[i];ans a[i];}int sum…

C++ 求不同数组的最大值

编写一个名为max()的函数&#xff0c;用于求包含n个元素的数组的最大值&#xff0c;要求通过函数重载能求int、double、char、string的最大值。 函数接口定义&#xff1a; int max(int *a, int n) ; double max(double *a, int n) ; char max(char *a, int n); string max(str…

探索直播美颜SDK背后的深度学习算法:智能化美肤与特效实现

美颜SDK背后的技术原理和深度学习算法近期很多读者向小编提问。今天&#xff0c;我将为大家深入讲解直播美颜SDK背后的深度学习算法&#xff0c;以及智能化美肤与特效实现的原理与应用。 一、美颜SDK的背后&#xff1a;深度学习算法 美颜SDK是一种集成了多种美颜功能的软件开…

【APB协议 UVM_Sequencer Driver Monitor_2024.03.04】

apb协议 写时序 地址、写信号、PSEL、写数据信号同时发生变化&#xff0c;即传输的第一个时钟被称为SETUP周期。在下个时钟上升沿,PENABLE信号拉高&#xff0c;表示ENABLE周期&#xff0c;在该周期内&#xff0c;数据、地址以及控制信号都必须保持有效。整个写传输在这个周期…