2025/12/29 10:24:47
网站建设
项目流程
玉林建设公司网站,互联网营销工具,传奇网页游戏手机版,久久建筑网碗扣式钢管脚手架安全技术规范csp信奥赛C标准模板库STL#xff08;8#xff09;#xff1a;stack的使用详解 一、什么是栈#xff1f;
栈是一种后进先出#xff08;LIFO#xff0c;Last In First Out#xff09; 的数据结构#xff0c;类似于现实生活中的一叠盘子或书籍。
二、栈的基本特性
只能…csp信奥赛C标准模板库STL8stack的使用详解一、什么是栈栈是一种后进先出LIFOLast In First Out的数据结构类似于现实生活中的一叠盘子或书籍。二、栈的基本特性只能在栈顶进行插入和删除操作插入操作称为入栈push删除操作称为出栈pop访问操作只能访问栈顶top元素三、C STL 中的 stack定义和初始化#includestack// 基本定义stackints1;// 默认使用deque作为底层容器// 初始化为另一个栈的副本stackints2(s1);四、stack 的主要成员函数方法功能时间复杂度push(x)将元素x压入栈顶O(1)pop()弹出栈顶元素O(1)top()返回栈顶元素O(1)empty()判断栈是否为空O(1)size()返回栈中元素个数O(1)五、基本操作示例#includeiostream#includestackusingnamespacestd;intmain(){stackints;// 入栈操作s.push(10);s.push(20);s.push(30);// 查看栈顶元素cout栈顶元素: s.top()endl;// 输出: 30// 查看栈的大小cout栈的大小: s.size()endl;// 输出: 3// 出栈操作s.pop();cout出栈后栈顶元素: s.top()endl;// 输出: 20// 判断栈是否为空if(!s.empty()){cout栈不为空endl;}// 遍历栈注意遍历会清空栈cout栈中元素从栈顶到栈底: ;while(!s.empty()){couts.top() ;s.pop();}// 输出: 20 10coutendl;return0;}六、信奥赛中栈的常见应用案例1. 括号匹配问题boolisValid(string s){stackcharst;for(charc:s){if(c(||c[||c{){st.push(c);}else{if(st.empty())returnfalse;chartopst.top();if((c)top!()||(c]top![)||(c}top!{)){returnfalse;}st.pop();}}returnst.empty();}案例2. 表达式求值后缀表达式intfun(vectorstringtokens){stackintst;for(stringtoken:tokens){if(token||token-||token*||token/){intbst.top();st.pop();intast.top();st.pop();if(token)st.push(ab);elseif(token-)st.push(a-b);elseif(token*)st.push(a*b);elsest.push(a/b);}else{st.push(stoi(token));}}returnst.top();}七、注意事项访问前检查空栈调用top()或pop()前务必使用empty()检查if(!st.empty()){intvalst.top();st.pop();}栈不能直接遍历需要遍历时可以复制一份或使用临时栈voidprintStack(stackints){// 值传递不修改原栈while(!s.empty()){couts.top() ;s.pop();}}性能考虑stack的底层默认使用deque也可以使用vector或list但各有优劣deque默认两端插入删除高效vector内存连续但扩大时需要重新分配list不需要连续内存但内存开销较大总结栈在信息学奥赛中是非常重要的数据结构常用于括号匹配、表达式求值深度优先搜索的非递归实现单调栈解决下一个更大/小元素问题撤销操作、函数调用等场景掌握栈的应用是提高算法能力的关键一步建议多练习相关的题目来加深理解。各种学习资料助力大家一站式学习和提升#includebits/stdc.husingnamespacestd;intmain(){cout########## 一站式掌握信奥赛知识! ##########;cout############# 冲刺信奥赛拿奖! #############;cout###### 课程购买后永久学习不受限制! ######;return0;}一、CSP信奥赛C通关学习视频课C语法基础C语法进阶C算法C数据结构CSP信奥赛数学CSP信奥赛STL二、CSP信奥赛C竞赛拿奖视频课信奥赛csp-j初赛高频考点解析CSP信奥赛C复赛集训课12大高频考点专题集训三、考级、竞赛刷题题单及题解GESP C考级真题题解CSP信奥赛C初赛及复赛高频考点真题解析CSP信奥赛C一等奖通关刷题题单及题解详细内容1、csp/信奥赛C完整信奥赛系列课程永久学习https://edu.csdn.net/lecturer/7901 点击跳转2、CSP信奥赛C竞赛拿奖视频课https://edu.csdn.net/course/detail/40437 点击跳转3、csp信奥赛冲刺一等奖有效刷题题解CSP信奥赛C初赛及复赛高频考点真题解析持续更新https://blog.csdn.net/weixin_66461496/category_12808781.html 点击跳转2025 csp-j 复赛真题及答案解析最新更新2025 csp-x(山东) 复赛真题及答案解析最新更新2025 csp-x(河南) 复赛真题及答案解析最新更新2025 csp-x(辽宁) 复赛真题及答案解析最新更新2025 csp-x(江西) 复赛真题及答案解析最新更新2025 csp-x(广西) 复赛真题及答案解析最新更新2020 ~ 2024 csp 复赛真题题单及题解2019 ~ 2022 csp-j 初赛高频考点真题分类解析2021 ~ 2024 csp-s 初赛高频考点解析2023 ~ 2024 csp-x (山东)初赛真题及答案解析2024 csp-j 初赛真题及答案解析2025 csp-j 初赛真题及答案解析最新更新2025 csp-s 初赛真题及答案解析最新更新2025 csp-x (山东)初赛真题及答案解析(最新更新)2025 csp-x (江西)初赛真题及答案解析(最新更新)2025 csp-x (辽宁)初赛真题及答案解析(最新更新)CSP信奥赛C一等奖通关刷题题单及题解持续更新https://blog.csdn.net/weixin_66461496/category_12673810.html 点击跳转129 道刷题练习和详细题解涉及模拟算法、数学思维、二分算法、 前缀和、差分、深搜、广搜、DP专题、 树和图4、GESP C考级真题题解GESP(C 一级二级三级)真题题解持续更新https://blog.csdn.net/weixin_66461496/category_12858102.html 点击跳转GESP(C 四级五级六级)真题题解持续更新https://blog.csdn.net/weixin_66461496/category_12869848.html 点击跳转· 文末祝福 ·#includebits/stdc.husingnamespacestd;intmain(){cout跟着王老师一起学习信奥赛C;cout 成就更好的自己 ;cout csp信奥赛一等奖属于你! ;return0;}