数据结构-3.7.双端队列

news2024/12/23 1:31:05

一.双端队列的三种形式:

双端队列也可以是只在一端删除和添加,此时就是栈;

双端队列在一端添加,另一端输出,此时就是队列;


二.判断输出序列合法性:

题目:若数据元素输入序列为1,2,3,4,则哪些输出序列是合法的,哪些是非法的?

共有24种排列方式:

1.双端队列只在一端删除和添加:此时双端队列也是栈

2,4,1,3不行,因为4出栈时说明3已经入栈了,下一个出栈的只能是3,而不是1。

下图红色标注的输出序列都不合法:

栈中合法的序列,双端队列中也一定合法。

2.双端队列只能一端插入,两端删除:

如果此时双端队列变为只能一端插入,两端删除时,栈中合法的序列在该双端队列中也一定合法,因此只需再验证栈中

不合法的序列就可以得知哪些序列在该双端队列合法:

比如4,3,2,1就不合法,因为4出去后,说明1,2,3已经进入,下一个出栈的要么是1(左边出),要么是3(右边出),

不可能是2出栈。

下图红色标注的输出序列都不合法:

3.双端队列只能一端删除,两端插入:

如果此时双端队列变为只能一端删除,两端插入时,栈中合法的序列在该双端队列中也一定合法,因此只需再验证栈中

不合法的序列就可以得知哪些序列在该双端队列合法:

比如出栈序列1,4,2,3,1先从左或者右进入再出去,4出栈时说明2,3已经进栈,逆推:如果出栈顺序是4,2,3,说明栈里的排列是3,2,4(注:出栈只能从一端出),进栈可以2先从左或者右进入,再3从左进栈,就形成3,2,最后4从右进栈,就形成了3,2,4,说明该出栈序列合法。

比如出栈序列4,1,3,2,逆推:由于出栈只能从一端出,因此栈里排列只能是2,3,1,4,显然错误,因为如果形成了1,4,那么左边必须是3,2,不可能是2,3,因为3比2后进栈(另一种思路:4出栈后,如果前面是1,那么1的前面只可能是2,不可能是3,因为3比2后进栈)

下图红色标注的输出序列都不合法:


三.总结:


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

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

相关文章

AI产品经理PRD文档与传统产品经理PRD有什么不同呢?

目录 模型输出:说白了,就是你的AI要干啥数据接入:你的AI要吃啥“粮食”验收标准:怎么判断你的AI干得好不好经验总结 你好,我是三桥君 在工作中,当我作为传统产品经理时,通常只需提供产品需求文…

数据结构-3.10.队列的应用

一.树的层次遍历: 新建队列,之后: 首先根节点1入队列,之后他的两个子节点2,3入队列,最后1就可以出队列了: 遍历2,他的两个子节点4,5入队列,最后2就可以出队列…

《论文阅读》PECER:通过动态人格提取和情境情绪推理产生同理心反应 ICASSP 2024

《论文阅读》PECER:通过动态人格提取和情境情绪推理产生同理心反应 ICASSP 2024 前言简介任务定义模型架构Cognitive-Affective Personality PerceiverMulti-source EncoderInteractive Decoder损失函数实验结果可持续发展观点前言 亲身阅读感受分享,细节画图解释,再也不用…

Linux 再入门整理:详解 /etc/fstab 文件

目录 1. 什么是 /etc/fstab2. /etc/fstab 文件的格式2.1 设备文件 (Device)2.2 挂载点 (Mount Point)2.3 文件系统类型 (File System Type)2.4 挂载选项 (Mount Options)2.5 Backup Operation(dump 参数)2.6 Pass Order (fsck 参数)2.6.1 参数设置2.6.2 …

Linux 进程的基本概念及描述

目录 0.前言 1. 什么是进程 1.1 进程的定义与特性 1.2 进程与线程的区别 2.描述进程 2.1 PCB (进程控制块) 2.2 task_struct 3.查看进程 3.1 查看进程信息 3.1.1 /proc 文件系统 3.1.2 ps 命令 3.1.2 top 和 htop 命令 3.2 获取进程标识符 3.2.1使用命令获取PID 3.2.2 使用C语言…

开发环境搭建之VScode的安装及使用

VScode的下载及安装 Visual Stuio Code(以下简称VSCode)是微软出的一款免费开源的轻量级编辑器。VSCode支持多平台,有 Windows、Linux和macOS 三个版本,是一个跨平台的编辑器。可通过以下载链接获取:https://code.visu…

基于SpringBoot+Vue的毕业设计选题管理系统

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏:…

从零开始搭建UVM平台(六)-加入env

书接上回: 从零开始搭建UVM平台(一)-只有uvm_driver的验证平台 从零开始搭建UVM平台(二)-加入factory机制 从零开始搭建UVM平台(三)-加入objection机制 从零开始搭建UVM平台(四&…

【Golang】关于Go语言中的包

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…

Oracle架构之数据库备份和RAC介绍

文章目录 1 数据库备份1.1 数据库备份分类1.1.1 逻辑备份与物理备份1.1.2 完全备份/差异备份/增量备份 1.2 Oracle 逻辑备份1.2.1 EXP/IMP1.2.1.1 EXP导出1.2.1.2 EXP关键字说明1.2.1.3 导入1.2.1.4 IMP关键字说明 1.2.2 EXPDP/IMPDP1.2.2.1 数据泵介绍1.2.2.2 数据泵的使用 1.…

【Android 源码分析】Activity生命周期之onPause

忽然有一天,我想要做一件事:去代码中去验证那些曾经被“灌输”的理论。                                                                                  – 服装…

Linux操作常用问题

目录 Ubuntu操作问题vi编辑方向键键盘乱码回退键不能使用的问题解决问题的方法 Ubuntu操作问题 vi编辑方向键键盘乱码回退键不能使用的问题 编辑/etc/systemd/resolved.conf文件来修改DNS,结果编辑时键盘乱码,按下方向键会出现ABCD,且回退键…

解决json格式转换被特殊字符截断问题

SyntaxError:Unexpected end of JSON input 当我们使用navigateTo跳转传参的时候,在小程序中需要先转换为json字符串的格式化,但是如果我们传递的参数中有特殊字符的?/&amp的话,可能导致字符串被截断,此…

手搓游戏 —— 生成式 AI 助手 Amazon Q Developer 初体验

文章目录 一、Amazon Q介绍二、实验环境准备2.1 下载项目安装包2.2 验证 Python 环境2.3 安装Amazon Q扩展2.4 授权Builder ID 三、Amazon Q 快速理解main.py四、Amazon Q快速梳理控制器逻辑五、启动像素沙盒开放世界程序六、在 update() 中实现传送功能七、定位并修复代码漏洞…

【无人机设计与技术】自抗扰控制(ADRC)的建模与仿真研究

摘要 本文针对四旋翼无人机姿态控制系统进行了基于自抗扰控制(ADRC)的建模与仿真研究。通过MATLAB/Simulink仿真平台,实现了无人机的姿态控制模型,并采用自抗扰控制器(ADRC)对无人机的姿态进行控制。本文详细介绍了自抗扰控制器的设计方法和应用&#x…

机器学习模型评估

前言 承接上篇讲述了机器学习有哪些常见的模型算法,以及适用的场景,本篇将继续讲述如何评估模型。模型评估的目的是选出泛化能力强的模型。泛化能力强表示模型能很好地适用于未知的样本,模型的错误率低、精度高。本文将从评估方法和评估指标…

【开源鸿蒙】OpenHarmony 5.0.0 发布了,速来下载最新代码

【开源鸿蒙】OpenHarmony 5.0.0 发布了,速来下载最新代码 一、写在前面二、准备命令工具三、配置用户信息四、下载OpenHarmony源码4.1 使用ssh协议下载(推荐)4.2 使用https协议下载 五、下载编译工具链六、参考链接 今天是9月30号&#xff0c…

20道面试题001

常考语法就是指针,指针与数组、指针与字符串、指针与结构体、指针与函数之间的关系与使用, 以上课为准,辅助《深度理解C指针》这本书。 1. 指针与数组 定义: 数组名在表达式中通常被视为指向数组首元素的指针。 访问元素: 可以通过指针访问数…

计算机网络:计算机网络概述:网络、互联网与因特网的区别

文章目录 网络、互联网与因特网的区别网络分类 互联网因特网基于 ISP 的多层次结构的互连网络因特网的标准化工作因特网管理机构因特网的组成 网络、互联网与因特网的区别 若干节点和链路互连形成网络,若干网络通过路由器互连形成互联网 互联网是全球范围内的网络…

PWM驱动LED呼吸灯

背景知识:TIM输出比较-CSDN博客 stm32f10x_tim.h函数 // *** OC是Output Compare输出比较函数 void TIM_OC1Init(TIM_TypeDef* TIMx, TIM_OCInitTypeDef* TIM_OCInitStruct); void TIM_OC2Init(TIM_TypeDef* TIMx, TIM_OCInitTypeDef* TIM_OCInitStruct); void TI…