数据结构-3.8.栈在括号匹配中的应用

news2024/11/20 12:28:25

一.括号匹配问题:

1.例一:

把左括号依次压入栈中,越往后压入栈的左括号越先被匹配即被弹出栈->先进后出,后进先出

2.例二:

当遇到左括号就压入栈中,当遇到右括号就把栈顶的左括号弹出,检查该右括号和左括号是否匹配

当遇到一个不匹配的就停止压入栈,因为之后的括号必定都不匹配。

3.例三:

4.例四:

5.例五:


二.思维导图:

其中Y代表Yes,N代表No


三.代码实现:

1.对于bracketCheck函数,形参str[]是传入的一个字符串,length是该字符串的长度;

字符topElem代表栈顶元素;return StackEmpty(S)如果是return false说明栈不为空,则左括号单身;

创建栈顶元素topElem时代表扫描到右括号且栈不为空,用栈顶元素topElem记录左括号;

2.结构体SqStack代表一个顺序栈。


四.总结:


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2183437.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算机毕业设计 基于协同过滤算法的个性化音乐推荐系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…

Linux系统命令:用于改变用户的登录 Shell 的命令chsh命令详解

目录 一、概述 二、用法 1、基本用法 2、常用选项 3、获取帮助 三、示例 1. 更改当前用户的登录 Shell 2. 更改其他用户的登录 Shell 3、列出所有可用的 shell 四、 注意事项 1、已经安装好 2、权限 3、密码验证 4、shell 路径 5、生效时间 五、示例输出 一、概…

mfc140u.dll缺失?快速解决方法全解析,解决mfc140u.dll错误

当你的电脑出现找不到mfc140u.dll的问题,不少用户在使用电脑时陷入了困扰。这个错误提示就像一道屏障,阻挡了用户正常使用某些软件。无论是办公软件、游戏还是专业的设计工具,一旦出现这个问题,都会导致软件无法正常运行。如果您也…

复数表示的电场

Exm加是复振幅,这是用复数表示电场,并提取只与空间有关的项复振幅就是复数表示电场,且把与空间xyz有关的量提取出来 经过验证实数E0cos(wtδx)对t求导,等于E0e^j(wtδx)对t求导再取实部 实数表示电磁波cos…

Windows11系统下SkyWalking环境搭建教程

目录 前言SkyWalking简介SkyWalking下载Agent监控实现启动配置SkyWalking启动Java应用程序启动Elasticsearch安装总结 前言 本文为博主在项目环境搭建时记录的SkyWalking安装流程,希望对大家能够有所帮助,不足之处欢迎批评指正🤝&#x1f91…

openpnp - 底部相机高级校正的参数设置

文章目录 openpnp - 底部相机高级校正的参数设置概述笔记修改 “Radial Lines Per Calibration Z” 的方法不同 “Radial Lines Per Calibration Z”的校验结果不同 “Radial Lines Per Calibration Z”的设备校验动作的比较总结备注END openpnp - 底部相机高级校正的参数设置 …

5G NR物理信道简介

文章目录 NR 上行物理信道PRACHPUCCHPUSCH NR 下行物理信道PBCHPDCCHPDSCH NR 上行物理信道 PRACH PRACH(Physical Random Access Channel)物理随机接入信道,用于传导preamble 序列。PRACH 由循环前缀CP、前导序列和保护间隔三部分组成。 PUCCH PUCCH…

相互作用的检索增强 3D 分子生成扩散模型 - IRDiff 评测

IRDiff 是一个全新的基于蛋白质-配体相互作用的检索增强 3D 分子扩散模型,可以生成目标感知的分子。IRDiff 利用一组设计好的参考配体分子来引导扩散模型生成满足目标特性的分子。 一、背景介绍 IRDiff 来源于清华大学深圳国际研究生院的杨文明教授和鹏城实验室的王…

通信工程学习:什么是POP3邮局协议版本3

POP3:邮局协议版本3 POP3(Post Office Protocol - Version 3),即邮局协议版本3,是TCP/IP协议族中的一员,由RFC1939定义。它是一种用于电子邮件接收的协议,主要规定了个人计算机如何连接到互联网…

OpenCV C++ 图像处理实战 ——《基于轮廓比对的缺陷检测》

OpenCV C++ 图像处理实战 ——《基于轮廓比对的缺陷检测》 一、结果演示二、图像预处理三、基于轮廓比对的缺陷检测3.1 计算平移分量3.2 计算旋转角度3.3 缺陷检测3.4 缺陷绘制四、源码测试图像下载总结一、结果演示 二、图像预处理 本文主要是基于轮廓匹配进行缺陷识别,最主…

STM32F103C8T6的平衡小车设计(基于FreeRTOS框架)

github主页:https://github.com/snqx-lqh gitee主页:https://gitee.com/snqx-lqh 本项目github地址:https://github.com/snqx-lqh/Stm32BalanceCar 本项目gitee地址:https://gitee.com/snqx-lqh/stm32-balance-car 欢迎交流 项目介…

leetcode:380. O(1) 时间插入、删除和获取随机元素

实现RandomizedSet 类: RandomizedSet() 初始化 RandomizedSet 对象bool insert(int val) 当元素 val 不存在时,向集合中插入该项,并返回 true ;否则,返回 false 。bool remove(int val) 当元素 val 存在时&#xff0…

开发者在AIGC浪潮中的定位与策略

人工智能时代,程序员如何保持核心竞争力? 随着AIGC(如chatgpt、midjourney、claude等)大语言模型接二连三的涌现,AI辅助编程工具日益普及,程序员的工作方式正在发生深刻变革。有人担心AI可能取代部分编程工…

Python FFmpeg 安装使用教程

文章目录 什么是 FFmpeg?主要功能包括: Windows 下载安装下载解压安装配置环境变量 使用案例使用 ffmpeg-python 库转换视频格式视频剪辑添加字幕 使用 subprocess.run 执行视频格式转换 其它问题ffmpeg 不是内部或外部命令,也不是可运行的程序 个人简介…

【深度学习】反向传播-过程举例

深度学习中,一般的参数更新方式都是梯度下降法,在使用梯度下降法时,涉及到梯度反向传播的过程,那么在反向传播过程中梯度到底是怎么传递的?结合自己最近的一点理解,下面举个例子简单说明! 一、…

47.哀家要长脑子了!

1.738. 单调递增的数字 - 力扣(LeetCode) 贪心不知道怎么贪。。。每个为选择最大的,如果前一位比后一位大,就要把前一位减去1,因为要最大的嘛,一点点减,然后剩下的都变为9,因为要最大…

CSS轮廓

轮廓(outline)是绘制于元素周围的一条线,位于边框的外围(紧贴着边框),主要用来突出显示某个元素,如下图所示: 图:轮廓(outline) 轮廓和边框看起来…

【网络篇】计算机网络基础知识详述(1)(笔记)

目录 一、因特网基础认识 1. 初识因特网 2. 网络服务 3. 网络协议 4. 网络边缘 5. 物理链路 (1)双绞铜线 (2)同轴电缆 (3)光纤 6. 网络的网络(因特网) 二、网络核心 1. …

Linux Shell编程快速入门以及案例(Linux一键批量启动、停止、重启Jar包Shell脚本)

文章目录 1,shell核心概念1. 1,变量1. 2. 引号1. 3. 循环1. 4. 条件判断1. 5. 函数1. 6. 重定向1. 7. 管道1. 8. 通配符 2,案例 本文通过介绍Linux Shell编程中最重要的十个核心概念,帮助初学者快速入门。 1,shell核心…

事业单位2024最新资料大全(均已更新)

为了帮助广大考生更加高效、精准地备考,我们特别推出了2024事业单位考试最新资料大全,这份资料已全面更新,确保与最新考试大纲和趋势同步,是你备考路上的得力助手! 文章目录 一、资料亮点二、为何选择我们?…