当前位置: 首页 > news >正文

Day35-【13003】短文,什么是双端队列?栈和队列的互相模拟,以及解决队列模拟栈时出栈时间开销大的方法

文章目录

    • 第三节进一步讨论栈和队列
      • 双端队列
      • 栈和队列的相互模拟
        • 使用栈来模拟队列
          • 类型定义
          • 入队
          • 出队
          • 判空,判满
        • 使用队列来模拟栈
          • 类型定义
          • 初始化
          • 清空操作
          • 判空,判满
          • 栈长度输出
          • 入栈
          • 出栈
            • 避免出栈时间开销大的方法

第三节进一步讨论栈和队列

在这里插入图片描述

双端队列

假设你芷在邮局排队等待办理某项业务。

当你排到最前面时,邮局柜员要求你填一 张表。

你靠边去填表,而让邮局柜员为下— 位排队的顾客服务。

在填完表后,邮局柜员要服务的下— 个对象就是你。

这意味着,你排到了队头,而不需要从队尾再排一 次队。

类似地,假如你去银行排队,发现队伍很长,所以决定离开,这相当于你从队尾走掉了。

可以用队列模拟排队情形。

邮局排队的清形表明,可以在队头出队,也可以在队头入队。

银行排队的清形表明,可以在队尾入队,也可以在队尾出队。

在队头、队尾两端均能够进行入队、出队操作的队列称为双端队列,如图3-21所示。

在这里插入图片描述

因为双端队列的两端都可以进行入队和出队操作,所以两端不再分队头及队尾。

当将队列画成水平方式时,可以将两端称为左端及右端。

当将队列画成垂直方式时,可以将两端分别称为上端及下端。

当然,也可以标记为端1和端2,或你喜欢的名字。

当将一 端的入队操作及另一 端的出队操作看作一 对操作时,双端队列与普通队列是一 样的。

当将同一 端的入队橾作及出队橾作看作一 对橾作时,双端队列与普通的栈是一 样的。

所以双端队列既有与队列一 样的橾作,又有与栈一 样的操作。

从队列的角度来看,这是双端队列,

从栈的角度来看,这是对底栈,只是栈的底是通的,即从— 个栈进入的元素,可以从另— 个栈中出栈。

对双端队列两端的操作加以限制,如其中一 端仅允许入队,另一 端既允许入队,又允许出队,得到的是输入受限的双端队列。

类似地, 一 端仅允许出队,另一 端既允许入队,又允许出队,得到的是输出受限的双端队列。

栈和队列的相互模拟

栈与队列可以相互模拟。

具体来说,使用两个栈能模拟出队列的行为,

或使用两个队列能模拟出栈的行为。

使用栈来模拟队列

在这里插入图片描述

类型定义

在这里插入图片描述

入队

在这里插入图片描述

出队

在这里插入图片描述

判空,判满

在这里插入图片描述

使用队列来模拟栈
类型定义

在这里插入图片描述

初始化

在这里插入图片描述

清空操作

在这里插入图片描述

判空,判满

在这里插入图片描述

栈长度输出

在这里插入图片描述

入栈

在这里插入图片描述

出栈

请添加图片描述

避免出栈时间开销大的方法

在这里插入图片描述

相关文章:

Day35-【13003】短文,什么是双端队列?栈和队列的互相模拟,以及解决队列模拟栈时出栈时间开销大的方法

文章目录 第三节进一步讨论栈和队列双端队列栈和队列的相互模拟使用栈来模拟队列类型定义入队出队判空,判满 使用队列来模拟栈类型定义初始化清空操作判空,判满栈长度输出入栈出栈避免出栈时间开销大的方法 第三节进一步讨论栈和队列 双端队列 假设你芷…...

力扣 55. 跳跃游戏

🔗 https://leetcode.cn/problems/jump-game 题目 给一个数组 nums,最开始在 index 0,每次可以跳跃的区间是 0-nums[i]判断是否可以跳到数组末尾 思路 题解是用贪心,实际上模拟也可以过遍历可以到达的下标,判断其可…...

深入剖析 HTML5 新特性:语义化标签和表单控件完全指南

系列文章目录 01-从零开始学 HTML:构建网页的基本框架与技巧 02-HTML常见文本标签解析:从基础到进阶的全面指南 03-HTML从入门到精通:链接与图像标签全解析 04-HTML 列表标签全解析:无序与有序列表的深度应用 05-HTML表格标签全面…...

本地快速部署DeepSeek-R1模型——2025新年贺岁

一晃年初六了,春节长假余额马上归零了。今天下午在我的电脑上成功部署了DeepSeek-R1模型,抽个时间和大家简单分享一下过程: 概述 DeepSeek模型 是一家由中国知名量化私募巨头幻方量化创立的人工智能公司,致力于开发高效、高性能…...

MVC 文件夹:架构之美与实际应用

MVC 文件夹:架构之美与实际应用 引言 MVC(Model-View-Controller)是一种设计模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种架构模式不仅提高了代码的可维护性和可扩展性,而且使得开发流程更加清晰。本文将深入探讨MVC文…...

Redis --- 秒杀优化方案(阻塞队列+基于Stream流的消息队列)

下面是我们的秒杀流程: 对于正常的秒杀处理,我们需要多次查询数据库,会给数据库造成相当大的压力,这个时候我们需要加入缓存,进而缓解数据库压力。 在上面的图示中,我们可以将一条流水线的任务拆成两条流水…...

如何确认设备文件 /dev/fb0 对应的帧缓冲设备是开发板上的LCD屏?如何查看LCD屏的属性信息?

要判断 /dev/fb0 是否对应的是 LCD 屏幕,可以通过以下几种方法: 方法 1:使用 fbset 命令查看帧缓冲设备的属性信息 Linux 的 帧缓冲设备(Framebuffer) 通常在 /dev/fbX 下,/dev/fb0 一般是主屏幕&#xff…...

C++多线程编程——基于策略模式、单例模式和简单工厂模式的可扩展智能析构线程

1. thread对象的析构问题 在 C 多线程标准库中,创建 thread 对象后,必须在对象析构前决定是 detach 还是 join。若在 thread 对象销毁时仍未做出决策,程序将会终止。 然而,在创建 thread 对象后、调用 join 前的代码中&#xff…...

AI与SEO关键词的完美结合如何提升网站流量与排名策略

内容概要 在当今数字营销环境中,内容的成功不仅依赖于高质量的创作,还包括高效的关键词策略。AI与SEO关键词的结合,正是这一趋势的重要体现。 AI技术在SEO中的重要性 在数字营销领域,AI技术的引入为SEO策略带来了前所未有的变革。…...

保姆级教程Docker部署Kafka官方镜像

目录 一、安装Docker及可视化工具 二、单节点部署 1、创建挂载目录 2、运行Kafka容器 3、Compose运行Kafka容器 4、查看Kafka运行状态 三、集群部署 在Kafka2.8版本之前,Kafka是强依赖于Zookeeper中间件的,这本身就很不合理,中间件依赖…...

解析PHP文件路径相关常量

PHP文件路径相关常量包括以下几个常量: __FILE__:表示当前文件的绝对路径,包括文件名。 __DIR__:表示当前文件所在的目录的绝对路径,不包括文件名。 dirname(__FILE__):等同于__DIR__,表示当前…...

WPS计算机二级•幻灯片的配色、美化与动画

听说这是目录哦 配色基础颜色语言❤️使用配色方案🩷更改PPT的颜色🧡PPT动画添加的原则💛PPT绘图工具💚自定义设置动画💙使用动画刷复制动画效果🩵制作文字打字机效果💜能量站😚 配色…...

C#,shell32 + 调用控制面板项(.Cpl)实现“新建快捷方式对话框”(全网首发)

Made By 于子轩,2025.2.2 不管是使用System.IO命名空间下的File类来创建快捷方式文件,或是使用Windows Script Host对象创建快捷方式,亦或是使用Shell32对象创建快捷方式,都对用户很不友好,今天小编为大家带来一种全新…...

单纯信息展示的站点是否可以用UML建模

凌钦亮 More options Aug 7 2010, 10:36 am 现在社会上大量的网站需求都还只是用于单纯的企业信息展示,那此种网站是否有必要用UML 建模呢?业务用例图的一个个用例是用来卖的,但是他只有信息展示这个需 求,我是否在划分业务用例…...

FinRobot:一个使用大型语言模型的金融应用开源AI代理平台

“FinRobot: An Open-Source AI Agent Platform for Financial Applications using Large Language Models” 论文地址:https://arxiv.org/pdf/2405.14767 Github地址:https://github.com/AI4Finance-Foundation/FinRobot 摘要 在金融领域与AI社区间&a…...

【Numpy核心编程攻略:Python数据处理、分析详解与科学计算】2.19 线性代数核武器:BLAS/LAPACK深度集成

2.19 线性代数核武器:BLAS/LAPACK深度集成 目录 #mermaid-svg-yVixkwXWUEZuu02L {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-yVixkwXWUEZuu02L .error-icon{fill:#552222;}#mermaid-svg-yVixkwXWUEZ…...

开发板目录 /usr/lib/fonts/ 中的字体文件 msyh.ttc 的介绍【微软雅黑(Microsoft YaHei)】

本文是博文 https://blog.csdn.net/wenhao_ir/article/details/145433648 的延伸扩展。 本文是博文 https://blog.csdn.net/wenhao_ir/article/details/145433648 的延伸扩展。 问:运行 ls /usr/lib/fonts/ 发现有一个名叫 msyh.ttc 的字体文件,能介绍…...

Love Tester:探索爱情的深度与维度

爱情是什么?是相互帮助、耐心、理解、鼓励、保护、可靠和牺牲。Love Tester 通过先进的算法,分析名字的兼容性和关系的潜力,帮助你计算爱情匹配的准确性。 相互帮助:在伴侣遇到困难时伸出援手,这是爱情的体现。耐心&a…...

BFS(广度优先搜索)——搜索算法

BFS,也就是广度(宽度)优先搜索,二叉树的层序遍历就是一个BFS的过程。而前、中、后序遍历则是DFS(深度优先搜索)。从字面意思也很好理解,DFS就是一条路走到黑,BFS则是一层一层地展开。…...

JVM 四虚拟机栈

虚拟机栈出现的背景 由于跨平台性的设计,Java的指令都是根据栈来设计的。不同平台CPU架构不同,所以不能设计为基于寄存器的。优点是跨平台,指令集小,编译器容易实现,缺点是性能下降,实现同样的功能需要更多…...

【限时公开】20年农业AI工程师压箱底的17条精度校验铁律:从田间采集到模型上线零容错实践手册

第一章:农业图像识别精度校验的底层逻辑与行业特殊性农业图像识别并非通用计算机视觉任务的简单迁移,其精度校验需直面田间场景固有的复杂性:光照剧烈波动、作物生长阶段连续变化、病斑形态高度异质、背景杂草与土壤纹理干扰显著。这些因素共…...

SDMatte在内容制作中的应用:短视频封面透明底素材、PPT动态图源快速生成

SDMatte在内容制作中的应用:短视频封面透明底素材、PPT动态图源快速生成 1. 为什么你需要专业的AI抠图工具 在内容创作领域,时间就是金钱。无论是制作短视频封面,还是设计PPT演示文稿,抠图都是最耗时的环节之一。传统Photoshop抠…...

建议收藏|降AIGC工具深度测评与2026年最好用推荐

2026年真正好用的AI论文降重与改写工具,核心看降重效果、去AI味、格式保留、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 …...

VSCode + CMake + MinGW 配置踩坑实录:从‘make’命令报错到一键编译调试全搞定

VSCode CMake MinGW 配置踩坑实录:从‘make’命令报错到一键编译调试全搞定 如果你正在尝试用VSCode搭建C开发环境,大概率已经看过无数篇教程,但依然会在某个环节卡住——可能是CMake找不到编译器,可能是调试器无法启动&#x…...

Leptin30;YQQVLTSLPSQNVLQIANDLENLRDLLHLL (mouse)

一、基本信息名称: Leptin30(小鼠源瘦素功能片段肽)单字母序列: YQQVLTSLPSQNVLQIANDLENLRDLLHLL三字母序列: Tyr-Gln-Gln-Val-Leu-Thr-Ser-Leu-Pro-Ser-Gln-Asn-Val-Leu-Gln-Ile-Ala-Asn-Asp-Leu-Glu-Asn-Leu-Arg-Asp…...

矩阵按键的硬件设计与软件扫描实战

1. 矩阵按键的硬件设计要点 第一次接触矩阵按键时,我完全被它节省IO口的设计惊艳到了。想象一下,16个独立按键原本需要16个IO口,而4x4矩阵按键只需要8个IO口就能搞定。这种设计在资源受限的单片机项目中简直就是救命稻草。 硬件连接上有个容易…...

ARMv8、AArch64 与 arm64:命名与体系结构要点

ARMv8、AArch64 与 arm64:命名与体系结构要点 ARMv8 指 ARM 架构的一个主版本代际;AArch64 是该代际下的 64 位执行状态与 A64 指令集;arm64 与 aarch64 是操作系统与工具链中对 AArch64 的常用三元组/目录名,二进制约定一致。下…...

AudioSeal效果展示:实测音频隐形水印,听不出区别但能精准检测

AudioSeal效果展示:实测音频隐形水印,听不出区别但能精准检测 1. 音频水印技术概述 1.1 什么是音频隐形水印 音频隐形水印是一种将数字标识信息嵌入到音频信号中的技术,这些信息对人类听觉系统几乎不可感知,但可以通过专用算法…...

停车场、门禁、移动执法…聊聊C#车牌识别系统在不同业务场景下的‘调教’心得

停车场、门禁、移动执法:C#车牌识别系统的场景化调优实战 当车牌识别系统从实验室走向真实业务场景,开发者往往会发现一个残酷的现实:那些在标准测试集上表现优异的模型,一旦部署到实际环境中,识别率可能断崖式下跌。我…...

Xcode打包上传App Store Connect失败?可能是这些配置没做好(含解决方案)

Xcode打包上传App Store Connect失败排查指南:从配置到解决方案 每次提交应用上架都是iOS开发者必经的考验,而Xcode打包上传过程中遇到的"无效二进制文件"错误堪称拦路虎。这种错误往往不会给出明确提示,而是通过邮件通知或在App S…...