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

《考研408数据结构》第三章(3.1 栈)复习笔记

前提提要:

        因为数据结构我个人大一学过,而且我也一直认为是408里最简单的,所以我一直拖到很晚才开,视频也没看,直接加速用【思维导图】+【例题】极限回顾复习,因此我也默认大部分人都是很早就学完了数据结构,所以该数据结构系列笔记只适用于非初学者的框架回顾复习,不再解释简单知识点概念。

【另外关于:栈】

        网上许多大佬、博主都总结了,【栈】和【队列】出的代码题本来就少可以说就没有,那么代码理解这块我将不再深究,反正知道逻辑会做【选择题】应该就够了

一、栈的基本概念

思维导图(放大保存可打印)

稍微讲解

        大家都会我就不说什么了,如何定义说白了就是————【只允许在一端插入、删除的线性表】

然后【和线性表的进一步对比的概念】需要知道:

  • 逻辑结构:与普通线性表一样(不都那三个特点是【同类型数据】【有限元素】【有序序列】)
  • 数据的运算:插入、删除不同
  • (存储结构:需要具体分析,因为他和线性表一样都是有 “顺序存储” 和 “链式存储”)

这玩意也不用背,看单词四级翻译就完事,好像考试也不考,只是我们写代码习惯而已

【卡特兰数,背】

当N个元素进栈后,他们【出栈的顺序】的【排列可能】有:【F(n)种】

  • 而【F(n)】的公式如下,如题解释看下面例题

【出栈顺序推算】

例子

【共享栈】

共享栈就是两个栈合起来,依旧从各自的栈顶进入元素

  • 相比之前分离的两个栈,共享栈可以充分利用空间,原来的分离栈,其中一个满了并不会利用另一个栈空余的空间,而是自己另外开辟空间
  • 所以共享栈的优点就是:
    • 【防止上溢】,【节省空间】

例题

二、【顺序栈:顺序存储】

思维导图(放大保存可打印)

【初始化】

        不过注意一点,大一、王道视频里,学【栈】的时候大家都是把栈当成一个“木桶”,数据从上往下存;但是这里是考研408,严谨的计算机组成原理知识点学过,我们的内存地址是从高到低——地址低位到地址高位,数据都是从上往下存放的,所以实际涉及计算机原理的时候我们记得要转变观念

【插入】

记住顺序,因为只有一个索引标记【top】,而且【top】始终标记着栈顶,所以:

  1. 一定要先让【top】指针往后移一位,也就是【新元素即将要插入的位置】
  2. 然后再让新元素插入到 S.data[S.top] 的位置
  3. 这两句还可以简写成【S.data[++S.top] = x】,但是留意【++a】和【a++】的区别,前者是先让a+1再执行别的流程、后者是先执行别的流程最后猜a+1
  4. 最后留意一下栈满了就不要再入栈,栈顶索引标记【top】到了最后一个元素位置【最大长度MaxSize-1】就应该知道满了
    1. 而且要在【进行插入】操作之前判断

【删除】

原理一样,大家都会我觉得也没必要说,注意一下【--a】和【a--】就好了

  • 然后还有一个是我们容易遗忘的,C语言选手的习惯都是用含对应类型的返回值的函数把【出栈值】用return x返回
  • C++的选手则是用void或者其他返回类型的函数,通过参数【&x】的形式把值【出栈值】带回来
  • 最后留意一下栈空了就不要再删栈了,栈顶索引标记【top】到了第一个元素前一位(也就是初始化的那个非法位置)————【-1】就应该知道空了
    • 而且要在【进行删除】操作之前判断

例题

三、【链栈:链式存储】(代码逻辑压根就不考)

思维导图

例题

http://www.dtcms.com/a/427586.html

相关文章:

  • 徐州网站排名工地模板图片大全
  • ARM Cortex-X 与 Cortex-A 命名正式退役,推出C1 CPU和G1 GPU
  • 南昌汉邦网站建设网页设计论文题目大全
  • 上市公司环境信息披露质量评分数据-王婉菁版(2008-2023)
  • 网站底部悬浮一个网站怎么绑定很多个域名
  • 极简全营养三食材组合:土豆 + 鸡蛋 + 绿叶菜
  • Java【代码 24】AOI数据获取(通过地址名称获取UID在获取AOI数据)
  • 提升 HarmonyOS 开发效率:DevEco Studio 6.0 热更新调试模式全指南
  • 桌面预测类开发,桌面%性别,姓名预测%系统开发,基于python,scikit-learn机器学习算法(sklearn)实现,分类算法,CSV无数据库
  • 用自己服务器做网站2023营业执照年检
  • QCustomPlot 高级扩展与实战案例
  • C语言形式参数和实际参数的区别(附带示例)
  • 医疗领域的数智化转型与智能化变革研究报告:技术驱动、模式创新与政策协同
  • 在 C# 中,如何使 $““ 字符串支持换行
  • 2025年精选单北斗GNSS水库形变监测系统对比推荐
  • Java 在Word 文档中添加批注:高效文档协作的利器
  • 代做效果图网站项目管理软件的作用
  • 广东省高水平建设专业网站北京大兴网站建设
  • 使用 HBuilderX 将网页打包为安卓 APP详细步骤
  • MinerU2.5:一种用于高效高分辨率文档解析的解耦视觉-语言模型
  • Redis三大命令分类详解
  • 饼状图修复总结
  • npm 最新镜像,命令导致下载错误
  • 济宁做公司网站中职电子商务专业就业方向
  • JVM深入研究--JHSDB (jvm 分析工具)
  • AI的局限性,有所能与有所不能
  • 广州网站设计公司推荐哪家网站的风格设计有哪些
  • 【完整源码+数据集+部署教程】武装人员图像分割系统: yolov8-seg-GFPN
  • 开发避坑指南(61):Redis持久化失败:RDB快照因磁盘问题无法保存解决方案
  • 短视频网站如何做推广网站导航栏最多可以做几个