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

栈数据结构详解:从入门到实战

一、栈是什么栈是后进先出 LIFO的线性数据结构。只允许在一端进出栈顶另一端封闭栈底先进去的后出来后进去的先出来生活例子叠盘子、快递纸箱堆叠。二、栈核心操作固定五个基础操作入栈 push栈顶加元素出栈 pop删除栈顶元素取栈顶 top只取值不删除判空 empty是否无元素获取大小 size当前元素个数三、C STL 栈快速使用头文件#include stack using namespace std;基础用法stackint st; st.push(1); st.push(2); st.push(3); // 取栈顶 cout st.top(); // 出栈 st.pop(); // 判空 if(st.empty()){} // 大小 st.size();四、手写数组模拟栈底层原理必会不用 STL纯数组自己实现栈理解底层#include iostream using namespace std; const int MAXN 1000; // 数组模拟栈 struct MyStack { int arr[MAXN]; int top; // 栈顶指针 // 初始化 MyStack() { top -1; } // 入栈 void push(int val) { if(top MAXN - 1) return; arr[top] val; } // 出栈 void pop() { if(!empty()) top--; } // 取栈顶 int getTop() { return arr[top]; } // 判空 bool empty() { return top -1; } // 元素个数 int size() { return top 1; } };五、栈经典算法题有效括号匹配题目描述给定只包含() [] {}的字符串判断括号是否合法左括号必须用相同类型右括号闭合左括号必须以正确顺序闭合解题思路遇到左括号直接入栈遇到右括号栈空 → 直接不合法栈顶不是对应左括号 → 不合法匹配成功 → 出栈遍历结束栈必须为空才合法完整代码#include iostream #include stack #include string using namespace std; bool isValid(string s) { stackchar st; for(char c : s) { // 左括号全部入栈 if(c ( || c [ || c {) { st.push(c); } else { // 右括号但栈空 if(st.empty()) return false; char top st.top(); // 匹配校验 if( (c ) top ! () || (c ] top ! [) || (c } top ! {) ) { return false; } st.pop(); } } // 全部匹配完栈必须为空 return st.empty(); } int main() { string s1 ()[]{}; string s2 ([)]; cout boolalpha isValid(s1) endl; cout boolalpha isValid(s2) endl; return 0; }六、栈常见算法应用场景括号匹配、表达式求值函数递归调用栈底层二叉树非递归遍历单调栈解题下一天精讲浏览器前进后退、撤销操作七、今日易错点搞反栈「后进先出」顺序括号匹配忘记最后判断栈是否为空取栈顶top()前不判空导致程序崩溃手写栈栈顶指针初始值设错八、今日总结栈核心特性后进先出 LIFO掌握 STL stack 快速用法 数组手写栈必会经典题有效括号匹配固定模板栈是单调栈、树非递归遍历的基础

相关文章:

栈数据结构详解:从入门到实战

一、栈是什么栈是后进先出 LIFO 的线性数据结构。只允许在一端进出(栈顶)另一端封闭(栈底)先进去的后出来,后进去的先出来生活例子:叠盘子、快递纸箱堆叠。二、栈核心操作固定五个基础操作:入栈…...

Windows平台OpenClaw 2.6.6安装配置完整教程与避坑全攻略

OpenClaw 2.6.6 Windows 一键部署教程|10分钟搭建本地AI智能助手 OpenClaw(小龙虾)是一款可在 Windows 平台本地运行的 AI 智能操作工具,能够通过自然语言指令完成文件管理、办公自动化、浏览器操控、数据处理等各类电脑任务。 …...

企业内网研发场景下通过Taotoken实现安全可控的AI能力集成

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 企业内网研发场景下通过Taotoken实现安全可控的AI能力集成 在中大型企业的研发环境中,引入大模型能力以提升开发效率已…...

从零到一掌握B站视频下载:免费开源工具助你永久保存高清内容

从零到一掌握B站视频下载:免费开源工具助你永久保存高清内容 【免费下载链接】bilibili-downloader B站视频下载,支持下载大会员清晰度4K,持续更新中 项目地址: https://gitcode.com/gh_mirrors/bil/bilibili-downloader 你是否曾为无…...

构建AI代理编排平台:从CLI工具协同到复杂工作流自动化

1. 项目概述:一个可配置的AI代理编排平台最近在折腾一个挺有意思的东西,我把它叫做“AI交响乐团”。本质上,它是一个全栈应用,核心目标是把那些我们日常在命令行里单打独斗的AI工具,比如Claude Code、Codex CLI、OpenC…...

基于MCP协议与Pydantic-AI构建智能代理:网页抓取与联网搜索实践

1. 项目概述:一个基于MCP协议的智能代理工具 最近在折腾AI应用开发,发现一个挺有意思的项目,来自GitHub上的 malminhas/mcp 。这是一个基于Python的智能代理工具,核心是利用了Model Context Protocol(MCP&#xff0…...

JoyCon-Driver:让Switch控制器在Windows上重获新生的终极指南

JoyCon-Driver:让Switch控制器在Windows上重获新生的终极指南 【免费下载链接】JoyCon-Driver A vJoy feeder for the Nintendo Switch JoyCons and Pro Controller 项目地址: https://gitcode.com/gh_mirrors/jo/JoyCon-Driver 你是否曾经想过,那…...

手机号逆向查询QQ号:终极完整快速指南

手机号逆向查询QQ号:终极完整快速指南 【免费下载链接】phone2qq 项目地址: https://gitcode.com/gh_mirrors/ph/phone2qq 你是否曾经因为忘记QQ号而无法登录自己的账号?或者需要验证员工的QQ绑定状态却无从下手?现在,通过…...

跨集群查询 K8s 资源报错 runtime.notregistered 的排查与解决

️ 问题背景在开发一个通用的 Kubernetes 资源查询工具时,遇到了一个非常诡异的现象:使用同一段代码查询指定的 K8s 资源列表,在某些集群上可以正常获取数据,但在另一些集群上却直接报错 runtime.notregistered。起初怀疑是目标集…...

Windows Defender Remover技术深度解析:Windows Defender彻底移除完整指南

Windows Defender Remover技术深度解析:Windows Defender彻底移除完整指南 【免费下载链接】windows-defender-remover A tool which is uses to remove Windows Defender in Windows 8.x, Windows 10 (every version) and Windows 11. 项目地址: https://gitcode…...

FakeLocation深度解析:5个实战场景掌握Android应用级位置伪装技术

FakeLocation深度解析:5个实战场景掌握Android应用级位置伪装技术 【免费下载链接】FakeLocation Xposed module to mock locations per app. 项目地址: https://gitcode.com/gh_mirrors/fak/FakeLocation 在移动应用生态中,位置数据已成为隐私保…...

逆变器双环控制器与下垂控制模块:原理、设计与MATLAB实现

逆变器双环控制器与下垂控制模块:原理、设计与MATLAB实现 摘要 随着分布式发电和微电网技术的快速发展,逆变器作为连接分布式电源与电网的关键接口设备,其控制策略直接影响系统的稳定性和电能质量。本文系统阐述了逆变器双环控制器与下垂控制模块的理论基础、设计方法和工…...

开源免费的WPS AI 软件 察元AI文档助手:链路 055:从 Ribbon 到 fetch 的速查顺序

链路 055:从 Ribbon 到 fetch 的速查顺序 总体链路图 下图在全系列各篇保持一致,仅通过高亮样式标示本篇所覆盖的环节;箭头表示主成功路径,点线为异常或可选路径。阅读任意一篇时都应能回到本图定位,避免在单文件里「…...

开源免费的WPS AI 软件 察元AI文档助手:链路 054:isOllamaLike 与免 API Key 的 chat 分支

链路 054:isOllamaLike 与免 API Key 的 chat 分支 总体链路图 下图在全系列各篇保持一致,仅通过高亮样式标示本篇所覆盖的环节;箭头表示主成功路径,点线为异常或可选路径。阅读任意一篇时都应能回到本图定位,避免在…...

开源免费的WPS AI 软件 察元AI文档助手:链路 053:AIAssistantDialog 选区翻译的 streamChatCompletion

链路 053:AIAssistantDialog 选区翻译的 streamChatCompletion 总体链路图 下图在全系列各篇保持一致,仅通过高亮样式标示本篇所覆盖的环节;箭头表示主成功路径,点线为异常或可选路径。阅读任意一篇时都应能回到本图定位&#x…...

开源免费的WPS AI 软件 察元AI文档助手:链路 052:wpsCapabilityRouter 中决策用 chatCompletion

链路 052:wpsCapabilityRouter 中决策用 chatCompletion 总体链路图 下图在全系列各篇保持一致,仅通过高亮样式标示本篇所覆盖的环节;箭头表示主成功路径,点线为异常或可选路径。阅读任意一篇时都应能回到本图定位,避…...

构建高效RTL到GDS标准化流程:提升芯片设计成功率与团队协作

1. 为什么我们需要一个从RTL到GDS的标准化流程?在芯片设计这个行当里干了十几年,我见过太多才华横溢的工程师在项目后期焦头烂额。他们可能用Verilog写出了一段极其精妙的RTL代码,仿真结果完美无瑕,但一到后端物理实现阶段&#x…...

从ESC SV幕后筹备看技术会议的系统工程与参会策略

1. 从“Day -1”的视角看一场顶级技术盛会的幕后如果你也和我一样,是个在嵌入式系统、半导体设计或者硬件开发领域摸爬滚打了有些年头的工程师,那么“ESC SV”(Embedded Systems Conference Silicon Valley)这个名字,对…...

终极指南:PotPlayer百度翻译插件实现5分钟实时字幕翻译

终极指南:PotPlayer百度翻译插件实现5分钟实时字幕翻译 【免费下载链接】PotPlayer_Subtitle_Translate_Baidu PotPlayer 字幕在线翻译插件 - 百度平台 项目地址: https://gitcode.com/gh_mirrors/po/PotPlayer_Subtitle_Translate_Baidu 还在为外语视频的字…...

三步永久保存微信聊天记录:WeChatMsg让珍贵对话不再丢失

三步永久保存微信聊天记录:WeChatMsg让珍贵对话不再丢失 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/WeC…...

基于MCP协议与Telegram Bot实现AI助手异步通知与审批工作流

1. 项目概述:为你的AI助手装上“千里眼”和“顺风耳” 如果你和我一样,日常工作中重度依赖Claude、Cursor这类AI助手来写代码、处理文档,那你肯定遇到过这样的场景:你给AI布置了一个需要运行几分钟甚至更长时间的任务,…...

R3nzSkin国服版终极指南:5分钟学会英雄联盟全皮肤免费使用

R3nzSkin国服版终极指南:5分钟学会英雄联盟全皮肤免费使用 【免费下载链接】R3nzSkin-For-China-Server Skin changer for League of Legends (LOL) 项目地址: https://gitcode.com/gh_mirrors/r3/R3nzSkin-For-China-Server R3nzSkin国服特供版是一款专为中…...

GEO优化深度指南:从行业源头到商业落地,如何为企服与创业者构建AI搜索护城河

在AI搜索浪潮席卷全球的当下,一个名为“GEO”(生成式引擎优化)的新兴赛道正以前所未有的速度重塑企业获客与品牌曝光的逻辑。对于创业者、企服从业者及互联网广告人而言,这既是颠覆性的挑战,也蕴藏着巨大的商业机遇。本…...

3分钟快速修复:VoiceFixer如何让受损语音重获新生?

3分钟快速修复:VoiceFixer如何让受损语音重获新生? 【免费下载链接】voicefixer General Speech Restoration 项目地址: https://gitcode.com/gh_mirrors/vo/voicefixer 你是否曾遇到过录音质量差、噪音干扰严重或语音不清晰的音频文件&#xff1…...

基于WeChatPadPro协议构建智能微信机器人:从架构解析到插件开发实战

1. 项目概述与核心价值最近在折腾一个挺有意思的项目,叫 WeChatPadPro-on-Wechat。简单来说,它是一个基于 WeChatPadPro 协议的智能微信机器人框架。如果你跟我一样,既想给自己的微信加个“AI大脑”,又对市面上一些需要自己抓包、…...

解决Claude Code在视频项目中被封号问题转向Taotoken稳定服务

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 解决Claude Code在视频项目中被封号问题转向Taotoken稳定服务 对于依赖Claude Code进行视频脚本编程辅助的开发者而言,…...

别再只ping 127.0.0.1了!这5个环回地址的隐藏用法,开发测试效率翻倍

解锁127.0.0.0/8:开发者必备的环回地址高阶用法手册 当你在终端输入ping 127.0.0.1看到"Reply from 127.0.0.1"时,是否想过这个熟悉的地址背后还隐藏着整个未被充分利用的地址王国?作为开发者,我们每天都在与环回地址打…...

避坑指南:用UltraISO和qemu-img转换银河麒麟镜像时,我踩过的那些雷

银河麒麟镜像转换实战:那些官方文档没告诉你的技术细节 第一次尝试将银河麒麟ISO镜像转换为qcow2格式时,我本以为这不过是个简单的两步操作——先用UltraISO转img,再用qemu-img转qcow2。直到深夜三点还在排查为什么生成的镜像无法启动时&…...

告别PS痕迹焦虑:用MVSS-Net++实战检测图像篡改,附Python代码与避坑指南

告别PS痕迹焦虑:用MVSS-Net实战检测图像篡改,附Python代码与避坑指南 在数字内容爆炸式增长的今天,图像篡改检测技术已成为内容安全领域的重要防线。一张经过精心修饰的图片可能引发舆论风波,而一个未被识别的伪造证件可能造成严重…...

北京、旧金山、东京、巴黎、迪拜——2026年五大AI主战场落地时间表,错过等一年!

更多请点击: https://intelliparadigm.com 第一章:2026年AI技术大会时间地点汇总 全球人工智能领域正加速迈向规模化落地与跨域协同新阶段,2026年将成为关键转折年——多场旗舰级AI技术大会已正式公布日程与主办城市。主办方普遍采用混合参会…...