当前位置: 首页 > 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架构不同,所以不能设计为基于寄存器的。优点是跨平台,指令集小,编译器容易实现,缺点是性能下降,实现同样的功能需要更多…...

ThunderAI:开源本地AI助手桌面应用部署与核心架构解析

1. 项目概述:一个开源的AI助手桌面应用 最近在GitHub上闲逛,发现了一个挺有意思的项目,叫“ThunderAI”。这名字听起来就挺带劲,对吧?点进去一看,是个用Python写的桌面应用程序,核心功能是把几个…...

Token Plan 套餐怎么选,Taotoken 预付费模式下的成本控制实践

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 Token Plan 套餐怎么选,Taotoken 预付费模式下的成本控制实践 对于有稳定大模型调用需求的开发者或团队而言&#xff0…...

5分钟掌握TrafficMonitor插件系统:从零开始构建你的桌面监控中心

5分钟掌握TrafficMonitor插件系统:从零开始构建你的桌面监控中心 【免费下载链接】TrafficMonitorPlugins 用于TrafficMonitor的插件 项目地址: https://gitcode.com/gh_mirrors/tr/TrafficMonitorPlugins 还在为Windows桌面上单调的系统监控而烦恼吗&#x…...

3分钟掌握微信聊天记录永久保存:从数据备份到智能分析完全攻略

3分钟掌握微信聊天记录永久保存:从数据备份到智能分析完全攻略 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/…...

SRWE终极窗口管理指南:免费解锁Windows窗口任意调整能力

SRWE终极窗口管理指南:免费解锁Windows窗口任意调整能力 【免费下载链接】SRWE Simple Runtime Window Editor 项目地址: https://gitcode.com/gh_mirrors/sr/SRWE 你是否曾为Windows窗口管理的限制感到困扰?想要调整游戏窗口大小进行高清截图&am…...

前端实战:用HTML/CSS/JS打造交互式生日蛋糕网页应用

1. 项目概述:一个用代码烘焙的生日惊喜最近给朋友准备生日礼物,不想再走寻常路,琢磨着送点特别的。作为一个整天和代码打交道的人,我决定用最熟悉的工具——HTML、CSS和JavaScript——亲手“烘焙”一个数字生日蛋糕。这个项目“Re…...

别再死记硬背了!用PyTorch和TensorFlow动手实现四种池化层,直观理解它的作用

用代码可视化理解深度学习中的池化层:PyTorch与TensorFlow实战指南 当你第一次听说"池化层"这个概念时,是否也感到困惑?为什么神经网络需要这样一个"缩小"图像的层?本文将通过PyTorch和TensorFlow两种框架的实…...

华为eNSP模拟企业网:用VRRP+MSTP搞定500人公司的网络冗余与隔离(附排错记录)

华为eNSP实战:构建500人企业级网络的高可用架构 当一家企业发展到500人规模时,网络架构的稳定性和可靠性就成为业务连续性的关键保障。作为网络工程师,我们经常面临这样的挑战:如何在有限的预算下,设计出既满足部门隔离…...

便民服务渠道智慧整合融通方案

便民服务渠道智慧整合融通方案 目录 第1章项目概述 7 1.1项目背景 7 1.2项目建设目标 7 1.2.1总体目标 8 1.2.2具体目标 8 1.3项目建设范围 9 1.3.1渠道整合范围 9 1.3.2业务覆盖范围 10 1.3.3系统建设范围 10 1.4项目建设意义 11 1.4.1对群众的意义 11 1.4.2对政府的意义 11 …...

告别外部中断!用STM32定时器输入捕获实现EC11编码器的高效解码

STM32定时器输入捕获实现EC11编码器的高效解码方案 在嵌入式开发中,旋转编码器作为人机交互的重要组件,广泛应用于工业控制、智能家居和消费电子等领域。EC11作为常见的机械编码器,其稳定性和低成本使其成为许多项目的首选。然而,…...