当前位置: 首页 > 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】的形式把值【出栈值】带回来
  • 初始化的那个非法位置)————【-1】就应该知道空了就是最后留意一下栈空了就不要再删栈了,栈顶索引标记【top】到了第一个元素前一位(也就
    • 而且要在【进行删除】操作之前判断

例题

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

思维导图

例题

http://www.jsqmd.com/news/7207/

相关文章:

  • 2025年光亮剂源头厂家最新推荐榜单:聚焦实力厂商,为电镀企业精选高口碑品牌
  • React前端框架有哪些? - 指南
  • 物品“复活”软件开发过程(第一版)
  • docker 安装 - 详解
  • 详细介绍:机器学习+数字孪生:从诊断到自主决策的跨越
  • 深入解析:[linux仓库]深入解析Linux动态链接与动态库加载:理解背后的原理与技巧
  • AI行业应用:金融、医疗、教育、制造业的落地实践与技术创新 - 实践
  • vue3 知识点快速入门整理
  • 红色面纱
  • 创建 SQL Server 数据库
  • 2025上海殡葬一条龙服务优质推荐:福孝堂文化用品公司贴心之
  • 2025上海寿衣厂家推荐福孝堂,专注传统工艺与贴心服务
  • 2025上海骨灰盒厂家推荐,福孝堂专业定制与暖心服务口碑之选
  • 【Groovy】流程控制
  • 【Groovy】函数、闭包、泛型
  • 关于onnxruntime依赖报错问题
  • LinuxC++——spdlog日志运用入门
  • C++设计模式之行为型模式:职责链模式(Chain of Responsibility) - 实践
  • 深入解析:金融/财务图表的强大可视化引擎——Highcharts Stock
  • 页面 HTTPS 化实战,从证书部署到真机验证的全流程(证书链、重定向、混合内容、抓包排查) - 实践
  • AT_abc308_h [ABC308Ex] Make Q
  • Coze源码分析-资源库-编辑插件-后端源码-核心技术与总结 - 教程
  • 函数-高级用法+闭包
  • 点云-标注-分类-航线规划软件 (一)点云自动分类 - 实践
  • JVM的内存分配策略有哪些?
  • 在Linux系统上一键配置DoH,解决DNS解析被污染
  • 完整教程:C 语言各种指针详解
  • 51单片机-实现DAC(PWM)数模转换PWM控制呼吸灯、直流电机实验教程 - 教程
  • Elasticsearch集群监控信息(亲测) - 教程
  • 基于Java springboot农村政务服务管理便捷的系统(源码+文档+运行视频+讲解视频)