2026《数据结构》考研复习笔记五(栈、队列)

栈、队列

  • 一、栈
    • 1.卡特兰数
    • 2.不合法的出栈序列
  • 二、队列
    • 1.循环队列
    • 2.输入输出受限队列(四个数1234)
  • 三、算法
    • 1.栈在括号匹配中的应用
    • 2.中缀表达式求值(通过转化为后缀表达式再后缀表达式求值)
    • 3.中缀表达式转化为后缀表达式
    • 4.后缀表达式求值

一、栈

1.卡特兰数

当n个不同元素依次入栈,一共有C(2n,n)/(n+1)种合法出栈序列
(证明写在后面的笔记上了,由于太费时间,就不再细写电子版了)

2.不合法的出栈序列

  1. 三个数1,2,3:312序列
  2. 四个数:1开头-1423,2开头-2413,3开头-3412、3142、3124,4开头-4123、4132、4213、4231、4312

在此笔者提醒一句:请认真证明上述结论并且找到规律,将4位数不合法出栈序列熟练掌握(达到快速写出的程度),这个出栈序列没有递推规律,但是依然有技巧——比如当某个数出栈时,前面的入栈序列是确定的,而曾经真题也考过类似题目

二、队列

1.循环队列

关于循环队列,一个非常让人模糊的点在于——尾指针rear和头指针front初始化的值。你有时候发现rear=front,有时候发现rear=MaxSize-1,front=0。而且有两年真题分别考察了这个区别。实际上,经过笔者研究,关于循环队列,一共有两种不同的入栈方式,进而导致了两种方式的“初始化”、“队长”、“队满”(默认牺牲一个存储单元)操作都不相同

  1. rear先进位,再判满,然后写入:这种情况必然导致rear写入完毕后指向队尾元素,因此初始化rear在front前,队长(rear+1-front+MaxSize)%MaxSize,队满rear先进位后有(rear+1)%MaxSIze==front
  2. rear先判满,再写入,然后进位:这种情况必然导致rear进位后指向队尾元素的下一个元素,因此初始化rear=front,队长(rear-front+MaxSize)%MaxSIze,队满有(rear+1)%MaxSize==front(不进位先判满)

2.输入输出受限队列(四个数1234)

  1. 不能由输入受限的双端队列得到的序列为:4213,4231(2不能第二个输出)
  2. 不能由输出受限的双端队列得到的序列为:4132,4231(3不能夹在12中间)
    请自行推导该序列并理解括号后面总结的规律,达到回忆便可推理出来的效果(不要死记硬背)。曾有一年考察了该知识点,且输入序列为五个数(abcde),如果没有四个数的二级结论的积累,考场上所耗费的时间可想而知,或者说,这道题就是为记住该二级结论的考生所出的。

三、算法

1.栈在括号匹配中的应用

2.中缀表达式求值(通过转化为后缀表达式再后缀表达式求值)

3.中缀表达式转化为后缀表达式

4.后缀表达式求值

此处不再给出具体代码和推导过程,只给出二级结论以及复习重点(不包含数组和矩阵)。由于上述内容足足耗费了我两天的精力,目前身心憔悴,最后再粘贴一下纸质版笔记,结束该阶段的总结(我总结的笔记含有上述二级结论的真题,这也是为什么我特意强调该部分的原因)

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

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

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

相关文章

深入解析微软MarkitDown:原理、应用与二次开发指南

一、项目背景与技术定位 微软开源的MarkitDown并非简单的又一个Markdown解析器,而是针对现代文档处理需求设计的工具链核心组件。该项目诞生于微软内部大规模文档系统的开发实践,旨在解决以下技术痛点: 大规模文档处理性能:能够高…

pyinstaller打包paddleocr发生错误解决

python环境是3.9,github paddleocr v2.10.0。 一个非常简单的案例如下,打包时发生错误。 import requests from paddleocr import PaddleOCR if __name__ "__main__":paddleocr_ocr PaddleOCR(use_angle_clsTrue, langch,det_model_dirmode…

算法之回溯法

回溯法 回溯法定义与概念核心思想回溯法的一般框架伪代码表示C语言实现框架 回溯法的优化技巧剪枝策略实现剪枝的C语言示例记忆化搜索 案例分析N皇后问题子集和问题全排列问题寻路问题 回溯法的可视化理解决策树状态空间树回溯过程 回溯法与其他算法的比较回溯法与动态规划的区…

命令行指引的尝试

效果 步骤 首先初始化一个空的项目,然后安装一些依赖 npm init -y npm install inquirer execa chalk ora至于这些依赖是干嘛的,如下图所示: 然后再 package.json 中补充一个 bin 然后再根目录下新建一个 index.js , 其中的内容如下 #!/…

探秘LLM推理模型:hidden states中藏着的self verification的“钥匙”

推理模型在数学和逻辑推理等任务中表现出色,但常出现过度推理的情况。本文研究发现,推理模型的隐藏状态编码了答案正确性信息,利用这一信息可提升推理效率。想知道具体如何实现吗?快来一起来了解吧! 论文标题 Reasoni…

流量抓取工具(wireshark)

协议 TCP/IP协议簇 网络接口层(没有特定的协议)PPPOE 物理层数据链路层 网络层: IP(v4/v6) ARP(地址解析协议) RARP ICMP(Internet控制报文协议) IGMP传输层:TCP(传输控制协议)UDP(用户数据报协议)应用层…

.NET仓储层在 using 块中创建 SqlSugarClient 的风险

如题&#xff0c;先看代码示例 using 块的使用 public ISugarQueryable<T> GetSet(Expression<Func<T, bool>> whereExpression null) {using (SqlSugarClient dbClient SqlSugarInstance.GetInstance()){var query dbClient.Queryable<T>();if (w…

C语言----函数栈帧讲解

目录 1.函数栈帧是什么? 2. 理解函数栈帧能解决什么问题 3、函数栈帧的创建和销毁具体过程 3.1 什么是栈 3.2 认识相关寄存器和汇编指令 3.3函数栈帧的创建和销毁 3.3.1 预备知识 3.3.2 函数的调用堆栈 3.3.3 准备环境 3.3.4 转到反汇编 3.3.5 函数栈帧的创建 3.3…

代码随想录学习笔记---二叉树

学习目标&#xff1a; 学习代码随想录–二叉树 每天学习1道,复习两道 学习内容&#xff1a; 2025.4.7 复习内容: 24. 两两交换链表中的节点 25. 最大二叉树 学习内容 26. 合并二叉树 2025.4.8 复习内容: 27. 二分查找 28. 合并二叉树 29. 27. 移除元素 学习内容: 30. 二叉…

Git ——提交至github,Vercel拉取,更新不了项目的问题解决

首先因为github上有个错误 1 failing check Vercel - No GitHub account was found matching the commit author email address 发现好像是vercel拉取不了项目&#xff0c;vercel登录的邮箱与我此次提交更改的邮箱不匹配&#xff0c;查看Git的user确实如此&#xff08;之前的…

Vue3项目中 npm 依赖安装 --save 与 --save-dev 的区别解析

这两个命令的区别如下&#xff1a; bash npm install --save types/crypto-js # 安装到 dependencies&#xff08;生产依赖&#xff09; npm install --save-dev types/crypto-js # 安装到 devDependencies&#xff08;开发依赖&#xff09; 核心区别 依赖分类不同…

品牌如何通过朝日新闻出海日本?——某企业日本媒体发稿实战

文 | 言同数字亚太传播实验室 一、日本市场的隐形门槛&#xff1a;中国品牌的三大痛点 案例背景&#xff1a; 某中国灵芝保健品企业&#xff08;代号"ForestLife"&#xff09;&#xff0c;产品虽获中国/欧盟有机认证&#xff0c;但在日本市场面临&#xff1a; 认知…

鸿蒙-试一下属性字符串:除了Span之外,如何在同一个Text组件中展示不同样式的文字

文章目录 前言简介有哪些类型拉出来溜溜Text SpanStyledString其他CustomSpan先看一下构造函数onMeasure(measureInfo: CustomSpanMeasureInfo): CustomSpanMetricsonDraw(context: DrawContext, drawInfo: CustomSpanDrawInfo) 遗留问题 前言 在开发中&#xff0c;经常会遇到…

Nginx 安装与配置全流程指南(2025 最新版)

一、环境准备与依赖安装 1.1 系统要求 操作系统&#xff1a;支持主流 Linux 发行版&#xff08;Ubuntu 20.04/CentOS 7/Debian 10&#xff09;硬件配置&#xff1a;内存 ≥512MB&#xff0c;磁盘 ≥10GB 可用空间&#xff08;建议使用 SSD&#xff09;网络要求&#xff1a;开…

【LeetCode 热题 100】滑动窗口最大值 / 最小覆盖子串 / 轮转数组 / 缺失的第一个正数

⭐️个人主页&#xff1a;小羊 ⭐️所属专栏&#xff1a;LeetCode 热题 100 很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~ 目录 子串和为 K 的子数组滑动窗口最大值最小覆盖子串 普通数组最大子数组和合并区间轮转数组除自身以外数组的乘积缺失的…

golang的cgo的一点小心得

最后有个项目需要涉及到cgo&#xff0c;在这块以前用的不多&#xff0c; 这次略微用得深入了一点&#xff0c;记下来几点以备以后使用 本质上cgo去用的时候就是遵守一些ABI而已&#xff0c;总体而言&#xff0c;尽量避免复杂结构的来回传递。1 对于变长参数&#xff0c;只有…

异构网络环境下的切换策略研究

移动互联网应用快速崛起,现有的无线接入技术有,无线局域网(Wireless Local Area NetWork,WLAN),移动蜂窝网络(4G,5G),无线广域网(Wireless Wide Area Network,WWAL)以及卫星通信网络等。多接入技术方便用户通信,还符合多业务场景。这种多无线接入技术共存的网络环…

人工智能赋能美妆零售数字化转型:基于开源AI大模型的S2B2C商城系统构建

摘要 在消费升级背景下&#xff0c;美妆行业正经历从传统卖场向智能体验空间的转型。本文以"未来商店"为研究对象&#xff0c;探讨开源AI大模型与S2B2C商城系统的协同效应&#xff0c;揭示人工智能技术如何重构"人-货-场"关系。通过实证研究发现&#xff…

计算机视觉中的正则化:从理论到实践的全面解析

&#x1f31f; 计算机视觉中的正则化&#xff1a;从理论到实践的全面解析&#x1f31f; 大家好&#xff01;今天要和大家分享的是在计算机视觉&#xff08;CV&#xff09;领域中非常重要的一个概念——正则化&#xff08;Regularization&#xff09;。无论你是刚开始接触深度学…

Linux字符设备驱动开发的详细步骤

1. 确定主设备号​​ ​​手动指定​​&#xff1a;明确设备号时&#xff0c;使用register_chrdev_region()静态申请&#xff08;需确保未被占用&#xff09;。​​动态分配​​&#xff1a;通过alloc_chrdev_region()由内核自动分配主设备号&#xff08;更灵活&#xff0c;推…