小学生学C++编程语法知识(STL容器(6、认识Stack(栈)))

发布时间:2026/9/14 6:09:25

小学生学C++编程语法知识(STL容器(6、认识Stack(栈))) STL课程第六课《魔法盘子塔——认识Stack栈》本课目标理解什么是 Stack栈。掌握后进先出LIFO的特点。熟练使用push()、pop()、top()、size()、empty()。能够利用 Stack 完成简单模拟。为以后学习括号匹配、DFS、表达式计算打基础。第一幕 食堂里的盘子今天。程序王国的食堂开饭了。阿姨把盘子一个一个叠起来。画图 请问如果现在拿盘子。应该拿哪一个同学们都会回答最上面的。继续问为什么因为如果先拿最下面那个。整个盘子塔都会倒下来。所以。只能拿最上面的盘子。第二幕 什么叫后进先出第一个放进去的是①号盘子。后来放进去②号。③号。④号。⑤号。画图顶部 ⑤ ④ ③ ② ① 底部请问谁最先拿出来答案⑤号。也就是说最后放进去。最先拿出来。总结这就是后进先出英文LIFOLast In First Out后来的先走先来的后走。第三幕 Queue和Stack有什么不同画图。Queue ↑ ↑ 出 进Stack ↑ 进、出总结Queue两头操作。Stack永远只操作顶部。第四幕 请出Stack头文件#includeiostream #includestack using namespace std;创建Stack。stackint st;解释stack表示栈。int保存整数。st变量名字。第五幕 放盘子——push()先放10st.push(10);盘子10继续st.push(20);变成20 10继续st.push(30);变成30 20 10强调push永远放最上面。第六幕 拿盘子——pop()现在拿盘子。st.pop();谁离开当然30。变成20 10再st.pop();变成10老师强调pop永远删除栈顶。第七幕 看看最上面的盘子请问最上面是谁直接st.top()例如coutst.top();输出20top。就是顶部。第八幕 栈还有几个盘子st.size();例如coutst.size();输出2第九幕 栈空了吗st.empty();例如if(st.empty()) { cout没有盘子; }第十幕 Stack不能这样做请问Vectora[3]Stack可以吗答案不能。请问Queue可以遍历吗也不能。Stack更加不能。因为。Stack只能看到顶部。第十一幕 演示程序#includeiostream #includestack using namespace std; int main() { stackint st; st.push(10); st.push(20); st.push(30); cout栈顶st.top()endl; st.pop(); cout新的栈顶st.top()endl; cout元素个数st.size()endl; return 0; }输出栈顶30 新的栈顶20 元素个数2第十二幕 课堂小游戏依次执行push(5) push(8) push(2) pop() push(9)请画图。开始空↓5↓8 5↓2 8 5↓8 5↓9 8 5请问top是谁答案9第十三幕 课堂实践一——撤销功能Undo请问为什么Word里面。CtrlZ。可以撤销因为。每操作一步。都保存一次。例如输入A B CStackC B A点击撤销。就是pop()删除C。又撤销。删除B。是不是很方便第十四幕 课堂实践二——浏览器返回浏览器。访问百度 新闻 天气 地图请问点击返回。去哪地图退出。回天气。再返回。回新闻。这就是Stack。第十五幕 课堂实践三——字符串反转输入hello要求输出olleh思路依次把每个字符压入栈。h e l l o然后不断top() pop()输出olleh参考程序#includeiostream #includestack using namespace std; int main() { stackchar st; string s; cins; for(char c:s) { st.push(c); } while(!st.empty()) { coutst.top(); st.pop(); } return 0; }输入hello输出olleh第十六幕 Stack真正的大本领——括号匹配汉克老师展示(()()) ((())) (()(问是否合法以后。学习括号匹配。全部要用Stack。今天先认识下。以后专门讲。第十七幕 DFS也离不开Stack我们学习深度优先搜索DFS。虽然递归帮我们自动维护了调用栈但如果不用递归也可以自己写一个stack来完成搜索。因此Stack 是很多算法的重要基础。Queue 和 Stack 对比Queue队列Stack栈先进先出FIFO后进先出LIFO两端操作只操作栈顶front()看队首top()看栈顶BFS 常用DFS、括号匹配、撤销操作常用画图Queue进入 → → 离开Stack ↑ push ↓ pop本课总结今天我们认识了Stack栈。它最大的特点就是后进先出LIFOLast In First Out。掌握了五个最常用的成员函数成员函数作用生活中的理解push(x)压入栈顶放一个新盘子到最上面pop()删除栈顶拿走最上面的盘子top()查看栈顶看最上面的盘子size()元素个数数一数盘子有多少个empty()是否为空看盘子塔是否已经空了一句话口诀盘子高高往上放后来盘子先离场push往上压pop从上拿top看顶部empty看有没有学会 Stack 不发愁DFS、括号全都有为什么递归像 Stack我们同学很多会递归却不知道为什么会出现函数调用栈。举例小明要完成任务A但任务A需要先完成任务B任务B又需要先完成任务C。于是执行顺序变成开始A ↓ 开始B ↓ 开始CC 完成后再返回 B结束A ↑ 结束B ↑ 结束C这和盘子一模一样调用函数不断push。函数结束不断pop。同学们现在就更加理解什么是压栈push、什么是出栈pop。
延伸阅读

更多相关文章

2026/9/13 2:56:19

达林顿管选型与应用指南:核心参数与2026技术趋势

1. 达林顿管基础认知与核心参数解析达林顿管作为功率放大电路中的关键元件,本质上是由两个双极型晶体管(BJT)复合而成的高增益器件。这种结构使其电流放大系数可达数千倍,特别适合驱动继电器、电机等大电流负载。在2026年的电子元…

2026/9/11 19:33:43

七彩虹RTX 5060 Ti显卡评测:性能与散热实测

1. 装机实测:iGame GeForce RTX 5060 Ti Ultra W OC深度体验最近拿到七彩虹iGame GeForce RTX 5060 Ti Ultra W OC显卡,这款显卡最吸引我的就是它的双色设计和背插式安装选项。作为一款中高端显卡,它在性能和外观上都有不少亮点。下面我就从开…

2026/9/11 17:25:41

C++约束模板优化:从概念到编译器性能提升的实战指南

1. 为什么需要约束模板?传统的 C 模板编程虽然强大,但一直面临两个核心痛点:晦涩的错误信息和复杂的 SFINAE 技巧。当模板参数不满足隐式要求时,编译器会爆出数百行的实例化回溯错误,让开发者无从下手。C20 引入的 Con…

2026/9/14 20:25:27

用FastAPI-MCP搭起分布式MCP网关:从单进程到多节点

用FastAPI-MCP搭起分布式MCP网关:从单进程到多节点 【免费下载链接】fastapi_mcp Expose your FastAPI endpoints as Model Context Protocol (MCP) tools, with Auth! 项目地址: https://gitcode.com/GitHub_Trending/fa/fastapi_mcp 假设业务团队要求把一套…

2026/9/14 20:25:27

磷酸化蛋白WB实验失败原因与优化方案

1. 磷酸化蛋白WB实验失败原因深度解析Western Blot(WB)作为蛋白质研究中最常用的技术手段之一,在磷酸化蛋白检测领域却让无数科研人员屡屡碰壁。为什么常规蛋白WB能做出来,一到磷酸化蛋白就频频失败?根据我十年蛋白实验…

2026/9/14 20:25:27

Python基础作业解析:从语法到实战应用

1. Python作业解析:从基础语法到实战应用作为一门广泛应用于各个领域的编程语言,Python以其简洁的语法和强大的功能深受开发者喜爱。这次我们将深入探讨Python基础作业中的三个核心题目,通过实际案例帮助初学者掌握关键编程概念。提示&#x…

2026/9/14 2:17:50

拯救者Y7000黑屏故障排查与维修实战指南

1. 项目概述:一台黑屏的拯救者Y7000,到底卡在哪一步? 联想拯救者Y7000系列笔记本,从2018年第一代搭载i5-8300H开始,到后来的i7-9750H、i7-10750H、i5-11400H,再到2023年款的R7-7840HS,它始终是学…

2026/9/14 0:03:22

KCF目标跟踪算法与OTB工程实现:毕业设计实战解析

简介:这是一份基于KCF核相关滤波算法、融合尺度池与抗遮挡处理的目标检测跟踪MATLAB完整源码,主要面向计算机相关专业准备毕业设计、课程设计或期末大作业的学生,也适合需要项目实战练习的初学者。源码在OTB数据集上完成验证,能够…

2026/9/14 0:03:22

语音情感识别实战:Keras实现LSTM、CNN、SVM与MLP多模型对比

简介:面向语音情感识别入门与进阶开发者,这份基于Keras的项目源码完整实现了LSTM、CNN、SVM、MLP四种模型,兼容Python3.8与Keras/TensorFlow2环境。压缩包内含49个文件,大小约70.31MB,主体包括Python脚本、yaml/json配…

2026/9/14 11:59:31

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/14 13:53:59

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/14 11:22:57

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码