数据结构 -- stack、queue

数据结构:STL:queue stack queue的定义和vector没什么不同queue变量名;类型可以是int,double等基本数据类型,也可以是自定义的结构体,也可以是STL容器。stack变量名;类型可以是int,double等基本数据类型,也可以是自定义的结构体,也可以是STL容器。 阅读详情

每天叫醒你的不是闹钟,而是梦想

● 数据结构 -- 栈(stack)

     栈是限制插入和删除只能在同一个位置上进行的表,该位置是表的末端,叫做栈顶(top)。栈结构是一种后进先出的(LIFO)的数据结构。对栈的基本操作只有进栈(push)和出栈(pop)两种,进栈相当于插入,出栈相当于删除最后的元素。

/**
* @Description: 数据结构 -- 栈
* @Author: Zero
* @Date: 2019/11/28
*/
public class MyStack {

   private LinkedList<String> linkedList;

   public MyStack () {
       linkedList = new LinkedList<>();
   }

   public void push (String value) {
       linkedList.add(value);
       System.out.println(value + "进栈");
   }

   public void pop () {
       int size = linkedList.size();
       if (size > 0) {
           System.out.println(linkedList.get(size - 1) + "出栈");
           linkedList.remove(size - 1);
       } else {
           System.out.println("该栈已经为空");
       }
   }

   public void getStack () {
       System.out.println("当前栈中数据");
       System.out.println("--------------");
       for (String s : linkedList) {
           System.out.println(s);
       }
       System.out.println("--------------");
   }


   public static void main(String[] args) {
       MyStack stack = new MyStack(); // 创建一个栈结构

       stack.push("A"); // 开始进栈啦
       stack.push("B");
       stack.push("C");
       stack.push("D");
       System.out.println("");

       stack.getStack(); // 获取当前栈中的数据
       System.out.println("");

       stack.pop(); //出栈
       stack.pop();
       System.out.println("");

       stack.getStack();

   }
}

● 数据结构 -- 队列(queue)

   队列,一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,一种操作受限制的线性表。进行插入操作的那一端则称为队尾,进行删除操作的端称为队头。

/**
* @Description: 数据结构 -- 队列
* @Author: Zero
* @Date: 2019/11/28
*/
public class MyQueue {

   private LinkedList<String> linkedList;

   public MyQueue () {
       linkedList = new LinkedList<>();
   }

   public void insert (String value) {
       linkedList.add(value);
       System.out.println(value + "进队列");
   }

   public void remove () {
       int size = linkedList.size();
       if (size > 0) {
           System.out.println(linkedList.get(0) + "出队列");
           linkedList.remove(0);
       } else {
           System.out.println("该队列为空");
       }

   }
   public void getQueue () {
       System.out.println(linkedList);
   }
   public static void main(String[] args) {
       MyQueue myQueue = new MyQueue();

       myQueue.insert("A");
       myQueue.insert("B");
       myQueue.insert("C");
       myQueue.insert("D");

       myQueue.getQueue();

       myQueue.remove();

       myQueue.getQueue();
   }
}

专注分享Java技术,跟我一起学习吧

长按识别二维码关注

Simplorer-Maxwell联合仿真速度太慢?我用这3个技巧把仿真时间砍半(附SVPWM周期与步长设置避坑) 本文详细介绍了Simplorer-Maxwell联合仿真性能优化的3个关键技巧,包括仿真步长与周期的科学配置、基于任务调度的加速技术以及模型简化与精度平衡。特别针对SVPWM参数设置提供了避坑指南,帮助工程师在不牺牲精度的情况下将仿真时间缩短50%以上,适用于电机驱动系统开发等场景。 阅读详情

相关推荐

TIBCO Spotfire 入门指南

数据分析工具 - TIBCO Spotfire 入门指南(一) 文章目录数据分析工具 - TIBCO Spotfire 入门指南(一)前言一、Sportfire 是什么?二、使用Sportfire 创建一个简单的数据分析模型1.设置分析(加载数据)2.编辑数据源3.创建图表3.1 创建交叉表3.2 创建饼图3.3 创建树形图3.4 创建散点图3.5 创建自定义筛选器总结 前言 通过对本指南的学习,你可以了解到如何开始用TIBCO Sportfire分析数据,并能详细了解您可以做什么以及怎么做 一、Spo

kaiakai111的博客 1万+

数据结构:栈和队列(Stack & Queue)【详解】

栈和队列知识框架 栈 一、栈的基本概念 1、栈的定义 栈(Stack):是只允许在一端进行插入或删除的线性表。首先栈是一种线性表,但限定这种线性表只能在某一端进行插入和删除操作。 栈顶(Top):线性表允许进行插入删除的那一端。 栈底(Bottom):固定的,不允许进行插入和删除的另一端。 空栈:不含任何元素的空表。 栈又称为先进先出(Last In First Out)的线性表,简称LIFO结构 2、栈的基本操作 InitStack(&S):初始化一个空栈S。 StackEmpty(S):

UniqueUnit的博客 31万+

Qlib+backtrader:2014.1.1-2023.9.20最新回测结果,可以实盘吗?

今年以来,在研究了qlib和backtrader的基础上,把二者结合起来进行了一个策略研究。简单说就是用qlib在200只股票的股票池中进行滚动训练与预测(walk forward),总体数据范围是2005到2023年,以20日间隔滚动训练和预测,最终得到2014.1.1-2023.9.20共10年测试期的收益率预测结果。将预测结果代入backtrader进行回测,得到如下回测结果。

qtbgo的博客 1783

数据结构——栈(Stack)和队列(Queue)

文章目录栈和队列1.栈的定义1.1栈的顺序存储结构1.2基于动态数组实现的顺序栈2.队列的定义2.1队列的链式存储结构2.2基于单链表实现的链队列 栈和队列 1.栈的定义 栈(stack)是限定仅在表尾进行插入和删除操作的线性表。 我们把允许数据插入和删除的一端称为栈顶(top),另一端称为栈底(bottom),不含任何数据元素的栈称为空栈。栈又称为后进先出(Last In First Out)的线性表。 1.1栈的顺序存储结构 栈的实现一般可以使用数组或者链表实现,相对而言数组的结构实现更优一些。因为数组

_Y__X_的博客 639

Web自动化神操作:如何用OpenCV 破解滑块验证码?

验证码作为一种安全机制,可以有效防止暴力破解密码、发帖、灌水、刷票等,大家在做 Web 自动化的时候应该有碰到验证码这个难题,一般我们可以和开发沟通请求他们的帮助:去掉验证码或者设置一个万能验证码,而如果开发不帮忙我们该如何去解决呢? 本篇文章以 Java 语言为例教你怎么破解验证码。 现在大多数网址会采用滑块验证码的方式,下面以腾讯的滑块验证码为例,先来看看破解的效果: 要破解滑块验证码,我们一般采取的思路如下: 获取滑块到背景缺口图的距离 通过 selenium 的 Actio

不喝枸杞的程序员 2035

SOC Boot学习(二)——JTAG Debug介绍

JTAG(Joint Test Action Group ,联合测试行动小组 ) 是一种国际标准测试协议,主要用于芯片内部测试及对系统进行仿真、调试。JTAG 技术是一种嵌入式调试技术,它在芯片内部封装了专门的测试电路 TAP ( Test Access Port ,测试访问口),通过专用的 JTAG 测试工具对内部节点进行测试。如今大多数比较复杂的器件都支持 JTAG 协议,如 ARM 、 DSP 、 FPGA 器件等。

yttt的博客 1605

数据结构--栈Stack和队列Queue(三)

以下是学习恋上数据结构与算法的学习笔记,本篇主要内容是Java实现栈 ◼栈是一种特殊的线性表,只能在一端进行操作 ●往栈中添加元素的操作,一般叫做push,入栈 ●从栈中移除元素的操作,一般叫做pop,出栈(只能移除栈顶元素,也叫做:弹出栈顶元素) ●后进先出的原则,Last In First Out,LIFO(类似于火车高铁进出站) 栈的内部实现可以使用动态数组、链表等数据结构 ◼栈的接口设...

九曜 536

关于使用CMT2300A FIFO缓存区间设置为64Byte的问题

帮助你解决在使用CMT2300A 时遇到的各种问题,若有需要,请及时与我交流

teleger的博客 1428

数据结构 二:表(list)、栈(stack)、队列(Queue)

一、表(list) 概念:形如A0,A1,A2,…,An-1的一般表,表大小n,大小为0的特殊的表位空表(empty list)。如果元素Ai前有元素Ai-1,则Ai-1为Ai的前驱,Ai为Ai-1的后继。 1.1线性表的顺序存储结构 用一段地址连续的存储单元依次存储线性表的数组元素 图2.1 1.2线性表的链式存储结构 链表由一系列节点组成,这些节点不必在内存中相连。 1

李晓东的博客 1733

华南理工大学电子与信息学院23年预推免复试面试经验贴

华南理工大学电子与信息学院23年预推免复试面试经验贴

Scut_Ty的博客 3295

基于YOLOv8的工业瓷砖缺陷检测:深度学习与UI界面的应用

本文详细介绍了如何使用YOLOv8进行工业瓷砖缺陷检测,并结合图形用户界面(UI)提供了完整的实现方案。通过YOLOv8模型,我们可以高效、精确地检测瓷砖图像中的缺陷,显著提高生产过程中的质量控制水平。随着数据集的进一步扩展和YOLOv8模型的不断优化,未来瓷砖缺陷检测的精度和速度将不断提高。此外,基于深度学习的缺陷检测技术不仅可以应用于瓷砖生产,还可以推广到其他领域的质量检测中。

YOLO 603

数据结构之栈(Stack)和队列(Queue)

一、栈 在日常生活中有不少类似于栈的例如,例如有一个很窄的死胡同,其宽度只能容纳一辆车通行,现有3辆车,分别编号为①-③,按编号顺序依次进入此胡同,若要推出②号车,就必须退出③号车,依次类推,如果要退出①号,就得依次退出③、②。所以,这个死胡同就是一个栈。如下图 栈是限制仅在表的一端进行插入和删除操作的线性表。允许进行插入和删除的一端称为栈顶,不允许的一端则为栈底。不含元素的空表称为空

weixin_38655751的博客 566

华为od 面试八股文_前端_03_含答案

华为od 面试八股文_前端_03_含答案

MISAYAONE的博客 2128

Stack vs Queue : 数据结构中的“顺序”之争

基本概念栈是一种**后进先出(Last In, First Out, LIFO)**的线性数据结构,类似于一叠盘子:最后放上去的盘子会被最先取走。Stack 的文档介绍Queue 的文档介绍队列是一种**先进先出(First In, First Out, FIFO)**的线性数据结构,类似于现实中的排队:先到的人先获得服务。priority_queue 的文档介绍1. 优先队列是一种容器适配器,根据严格的弱排序标准,它的第一个元素总是它所包含的元素中最大的。

cbwjty的博客 835

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

数据结构-Stack和Queue

栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(First In First Out) 入队列:进行插入操作的一端称为。从上图中可以看到,Stack继承了Vector,Vector和ArrayList类似,都是动态的顺序表,不同的是Vector是线程安 全的。它是一个基于数组实现的双端队列(Deque),可以高效地模拟栈的行为。在Java中,Queue是个接口,底层是通过链表实现的。

qq_62123793的博客 813

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Java 数据结构:栈、队列、双向队列(Stack、Queue、Deque)

本文介绍了Java中栈、队列、双向队列的实现,总结了Stack类、Queue接口和Deque接口中方法的用法和区别。

Hanx_404的博客 1428

数据结构之 Map stack和Queue

1.stack堆栈,没有迭代器,支持push()方法。后进先出,top()返回最顶端的元素,pop()剔除最顶元素;后进先出的模式,只能在栈头进行插入与删除操作。2.deque双端队列,支持迭代器,有push_back()方法,跟vector差不多,比vector多了个pop_front,push_front方法3.queue队列,先进先出,不支持迭代器,有push()方法,pop()剔除第一个元素,front()返回第一个元素;只能在队尾进行插入,在队头进行删除。 -- 不管是是队列还是堆栈,都可...

C++ JAVA的专栏 986

java基础之数据结构(ArrayList、LinkedList、Stack、Queue、HashMap)

欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 新的改变 我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客: 全新的界面设计 ,将会带来全新的写作体验; 在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示; 增加了 图片

weixin_44896299的博客 341

Crow的数据结构(C#实现)学习笔记#3:Stack和Queue实现

可以说,Stack和Queue是对List的一层封装,将需要被用户访问的元素暴露,其余的隐藏。到此,简单的线性结构应该就结束了,之后的数据结构大概就不会有这么多“不做说明”了。

CrowYi的博客 329

【数据结构】栈Stack与队列Queue

本文介绍了栈和队列两种线性数据结构及其实现。栈是一种后进先出(LIFO)结构,支持压栈(push)和出栈(pop)操作,Java中可通过Stack类实现。队列是一种先进先出(FIFO)结构,支持入队(offer)和出队(poll)操作,Java中通过Queue接口和LinkedList类实现。文中详细对比了二者的特点、操作方法和底层实现,并提供了基于数组和链表的模拟实现代码,帮助理解其核心原理和应用场景。

记录了从0学习Java技术栈的日常 1660

C++实现基于锁的线程安全的数据结构(stack、map、queue和list)

本文将介绍一些c++中基于锁实现的并发数据结构。包括线程安全的Stack、Queue、List和Map。

pEacill的博客 1344

数据结构(list、vector、queue、stack C++实现)

最近在复习数据结构的内容,模仿了stl中的list、vector、queue和stack.当然是精简版的了,只写了最基本的功能。 这里要注意一点,模板类的类声明和定义要在同一个文件内,最好是在头文件内。因为模板类和模板函数在使用的时候才会被实例化,所以编译器需要知道所有的实现代码,然后去实例化各种数据类型的类或者函数。所以如果把类定义放在单独的源文件中的话,编译器找不到相关定义。 list...

konglongdanfo的博客 917

探秘C++ STL中的Stack与Queue:数据结构的艺术与实践

stack和queue作为两种基础而重要的数据结构,扮演着不可或缺的角色。本文将深入剖析这两个容器适配器,通过丰富的代码示例,带你领略它们的功能与内部机制。

wgr050505的博客 585

Java数据结构栈和队列(Stack和Queue详解)

栈和队列是数据结构中重要的存储方式,也是建立在Arrarylist和LinkedList之上的数据结构。本猿在C语言阶段就已经详细剖析过栈和队列,不熟悉的小伙伴可以翻看之前的博客内容!Java阶段一方面剖析Java中自带的Stack和Queue中的各种方法,另一方面也是重点重新再次实现栈和队列, 并发掘和C语言中的区别。

多敲代码防脱发的博客 1571

java自带数据结构(set/list/stack/queue)

一、set 1.1 创建 Set set=new HashSet(); 1.2 添加元素 set.add(1); 1.3 set转化为list List<String> list1 = new ArrayList<String>(set); 二、List 2.1 新建一个List List<String> test=new ArrayList<String>(); https://www.cnblogs.com/llq1214/p/11383075

kking_edc的博客 1165

C++ 核心数据结构:Stack 与 Queue 类深度解析

本文对 C++ 中的 Stack 类与 Queue 类展开深度解析。首先阐述学习二者的重要性,如 Stack 在函数调用、表达式求值等方面作用关键,Queue 在任务调度、广度优先搜索中不可或缺。接着介绍其在标准库中的定义、头文件及与底层容器关系。然后剖析内部结构,包括数据成员与内存管理机制。还详细说明了构造函数、成员函数的用法及功能。文中分别给出 Stack 类和 Queue 类的模拟实现示例,以助理解内部原理。最后列举二者的诸多应用场景,强调它们在编程中能提升效率与可读性。

A Charmer 的博客 4162

java数据结构——Stack和Queue

进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出。那就说明元素可以从队头出队和入队,也可以从队尾出队和入队。,进栈过程中可以出栈,则下列不可能的一个出栈序列是()依次入栈,然后再依次出栈,则元素出栈的顺序是( )。)是指允许两端都可以进行入队和出队操作的队列,只允许在固定的一端进行插入和删除元素操作。:栈的删除操作叫做出栈,出数据在栈顶。一个栈的初始状态为空。出队列:进行删除操作的一端称为。:一种特殊的线性表,其。

2301_81147883的博客 703
上一篇: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; 前言中不允许有内容
下一篇: 数据结构 -- 栈(stack)队列 (queue)
新时代Java农民工
博客等级 码龄7年 16粉丝 116原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值