栈(考研复习)
一、采用顺序存储结构实现栈即顺序栈总结Stack.h#pragmaonce#includestdio.h#includestdbool.h#defineMaxSize10typedefintElemType;// 采用顺序结构实现栈// 定义栈的结构typedefstructSqStack{ElemType arr[MaxSize];// 栈中最多可以存储MaxSize个ElemType类型的数据inttop;// top是栈顶指针指向栈顶元素}SqStack;// 栈的初始化voidInit(SqStackS);// 判断栈是否为空。为空返回true否则返回false。boolEmpty(SqStack S);// 新元素x入栈boolPush(SqStackS,ElemType x);// 删除栈顶元素(出栈操作),并将栈顶元素的值赋给变量eboolPop(SqStackS,ElemTypee);// 获取栈顶元素并将栈顶元素的值赋给变量eboolGetTop(SqStack S,ElemTypee);Stack.cpp#define_CRT_SECURE_NO_WARNINGS1#includeStack.h// 栈的初始化voidInit(SqStackS){S.top-1;}// 判断栈是否为空。为空返回true否则返回falseboolEmpty(SqStack S){if(S.top-1)returntrue;// 栈为空elsereturnfalse;// 栈不为空}// 新元素x入栈boolPush(SqStackS,ElemType x){if(S.topMaxSize-1)// 此时表示栈中已经存满了元素无法执行入栈操作returnfalse;S.top;S.arr[S.top]x;// 将新元素x放到栈顶的位置returntrue;}// 删除栈顶元素(出栈操作),并将栈顶元素的值赋给变量eboolPop(SqStackS,ElemTypee){if(S.top-1)// 表示此时栈为空无法执行出栈操作returnfalse;eS.arr[S.top];// 将栈顶元素赋给eS.top--;returntrue;}// 获取栈顶元素并将栈顶元素的值赋给变量eboolGetTop(SqStack S,ElemTypee){if(S.top-1)returnfalse;// 表示栈为空无法指向获取栈顶元素的操作eS.arr[S.top];returntrue;}二、共享栈共享栈就是两个栈共享同一片空间// 定义共享栈的结构(两个栈共享同一块内存这两个栈分别命名为0号栈与1号栈)#defineMaxSize10typedefintElmeType;typedefstructShStack{ElmeType data[MaxSize];inttop0;// 0号栈的栈顶指针inttop1;// 1号栈的栈顶指针}ShStack;// 共享栈的初始化voidInitStack(ShStackS){S.top0-1;S.top1MaxSize;}// 共享栈满了的条件S.top01 S.top1三、掌握算法思想即可不用写代码2025年02考了算法题栈在括号匹配中的应用#define_CRT_SECURE_NO_WARNINGS1#defineMaxSize10typedefcharElemType;// 采用顺序结构实现栈// 定义栈的结构typedefstructSqStack{ElemType arr[MaxSize];// 栈中最多可以存储MaxSize个ElemType类型的数据inttop;// top是栈顶指针指向栈顶元素}SqStack;// 栈的初始化voidInit(SqStackS){S.top-1;}// 判断栈是否为空。为空返回true否则返回falseboolEmpty(SqStack S){if(S.top-1)returntrue;// 栈为空elsereturnfalse;// 栈不为空}// 新元素x入栈boolPush(SqStackS,ElemType x){if(S.topMaxSize-1)// 此时表示栈中已经存满了元素无法执行入栈操作returnfalse;S.top;S.arr[S.top]x;// 将新元素x放到栈顶的位置returntrue;}// 删除栈顶元素(出栈操作),并将栈顶元素的值赋给变量eboolPop(SqStackS,ElemTypee){if(S.top-1)// 表示此时栈为空无法执行出栈操作returnfalse;eS.arr[S.top];// 将栈顶元素赋给eS.top--;returntrue;}// 字符数组str存储length个括号字符若这些括号字符是匹配的,就返回true,否则返回falseboolbracketCheck(charstr[],intlength){// 创建一个栈SqStack s;// 对栈进行初始化Init(s);for(inti0;ilength;i){// 当遍历到左括号就让左括号入栈if(str[i]{||str[i][||str[i](){Push(s,str[i]);}else// 当遍历到右括号时就让栈顶的左括号出栈看看是否与右括号匹配{if(Empty(s))// 栈顶的左括号出栈前要判断栈此时是否为空如果为空直接返回falsereturnfalse;chartemp;Pop(s,temp);;// 让栈顶元素出栈并将栈顶元素的值赋给tempif(temp(str[i]!))returnfalse;if(temp[str[i]!])returnfalse;if(temp{str[i]!})returnfalse;}}// 当所有的括号遍历完之后如果此时栈为空表示括号匹配成功否则匹配失败returnEmpty(s);}

相关新闻

安卓投屏到电脑卡顿?QtScrcpy 低延迟投屏快速上手指南

安卓投屏到电脑卡顿?QtScrcpy 低延迟投屏快速上手指南

安卓投屏到电脑卡顿?QtScrcpy 低延迟投屏快速上手指南 【免费下载链接】QtScrcpy Android real-time display control software 项目地址: https://gitcode.com/GitHub_Trending/qt/QtScrcpy QtScrcpy 是一款开源的安卓投屏工具:手机通过 USB 或 …

2026/11/3 22:32:37 阅读更多 →
Papermark 前端性能实践:通过包装元素(Wrapper)实现 SVG 动画硬件加速

Papermark 前端性能实践:通过包装元素(Wrapper)实现 SVG 动画硬件加速

后端前端企业应用 【免费下载链接】papermark Papermark is the open-source DocSend alternative and secure data rooms with built-in analytics and custom domains. 项目地址: https://gitcode.com/GitHub_Trending/pa/papermark 点击查看 免费下载 在 Paperm…

2026/11/3 22:32:38 阅读更多 →
微信聊天记录导出:WeChatMsg 免费本地备份三种格式

微信聊天记录导出:WeChatMsg 免费本地备份三种格式

微信聊天记录导出:WeChatMsg 免费本地备份三种格式 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/WeChatMs…

2026/10/30 14:36:03 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/11/3 1:09:25 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/11/3 10:57:27 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/11/3 11:35:49 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/11/3 2:27:21 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/11/3 10:47:27 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/11/3 10:57:33 阅读更多 →

日新闻

周新闻

月新闻