数据结构上机实践第五周项目3 - 括号的匹配
假设表达式中允许三种括号:圆括号、方括号和大括号。编写一个算法,判断表达式中的各种左括号是否与右括号匹配。
例如,输入2+(3+4)*2+{[3]}-8,输出匹配正确;输入2+(3+4*[2)+{[3]}-8,输出匹配错误。
提示:
(1)遇到左括号入栈,遇到右括号后,出栈一个符号,看是否配对。若配对,继续,直到读完所有的符号,栈也正好为空。若在中间出现一个不配对的,或者____,则可以得出不配对的结论。
(2)也可以设计一个返回值为布尔型的函数,参数为要配对的表达式,为一个字符串。
//*Copyright (c)2017,烟台大学计算机与控制工程学院*
//*All rights reservrd.*
//*文件名称 :main.cpp*
//*作者:田长航*
//*完成时间:2017年11月2日*
//*版本号:v1.0*
//*问题描述:测试函数*
//*输入描述:无*
//*程序输出:无*
#include <stdio.h>
#include "sqstack.h" bool isMatch(char *st)
{ int d=1, i; char c; SqStack *s; InitStack(s); for(i=0; st[i]!='\0'&&d; i++) { switch(st[i]) { case'(': case'[': case'{': Push(s, st[i]); break; case')': Pop(s, c); if(c!='(') d=0; c='0'; break; case']': Pop(s, c); if(c!='[') d=0; c='0'; break; case'}': Pop(s,c); if(c!='{') d=0; c='0'; break; } } if(StackEmpty(s)&&d==1) return true; else return false;
} int main()
{ char st[50]; printf("请输入表达式:"); scanf("%s", st); if(isMatch(st)) printf("配对正确!!\n"); else printf("配对错误!!\n"); return 0;
}
数据结构上机实践第五周项目3 - 括号的匹配相关推荐
- 数据结构上机实践第五周项目2 - 建立链栈算法库
建立链栈算法库 链式存储和顺序存储方式各有特点,各有缺点,上次实践建立了顺序栈的算法库,本次实践将建立链栈的算法库,用以应多更多多样化的问题.(编译环境:VC++6.0) 本次建立算法库需要建立多文件 ...
- 数据结构上机实践第五周项目1- 建立顺序栈算法库
建立顺序栈算法库 本次实践将建立顺序栈的算法库,用以解决更多的工程问题,提供便利.(编译环境:VC++6.0) 建立算法库将会用到多文件组织工程的建立,本次实践不再细说,点击此处可参考. 建立好的工程 ...
- 数据结构上机实践第八周项目9-广义表算法库及应用
广义表算法库及应用 为了丰富算法库,以应对各类工程的需要,本次实践将进行广义表算法库的建立以及应用. 项目要求一: 建立广义表算法库,包括: ① 头文glist.h,定义数据类型,声明函数: ② ...
- 数据结构上机实践第八周项目2- 建立链串的算法库
建立链串的算法库 一般每一种数据结构都不会局限于在连续空间内的存取,那我们的串自然也不反常,本次实践将建立链串的算法库,应用于有需求的工程当中,提高程序的容错性. 本次实践依然会用到多文件组织工程的建 ...
- 数据结构上机实践第三周项目2 - 建设“顺序表”算法库
[项目2 - 建设"顺序表"算法库] 领会"0207将算法变程序"部分建议的方法,建设自己的专业基础设施算法库.这一周,建的是顺序表的算法库. 算法库包括两 ...
- 数据结构上机实践第七周项目1 - 自建算法库——顺序环形队列
自建算法库--顺序环形队列 本次实践将建立顺序环形队列的算法库,用于之后的工程中 实现源代码如下: 1.squeue.h /* copyright (t) 2017,烟台大学计算机学院 *All ri ...
- 数据结构上机实践第11周项目1 - 图基本算法库
图基本算法库 本次实践将建立图的基本算法库,用以丰富算法库,灵活应对更多样的工程,所谓"技多不压身",算法亦如此. 本次实践将运用多文件组织工程的建立,点击此处参考.(编译 ...
- 数据结构上机实践第十周项目2 - 用二叉树求解代数表达式
用二叉树求解代数表达式 本次实践所用到的二叉树算法库点击此处参考 编译环境(VC++6.0) 项目要求如下: 用二叉树来表示代数表达式,树的每一个分支节点代表一个运算符,每一个叶子节点代表一个运算数( ...
- 数据结构上机实践第八周项目8-稀疏矩阵的三元组表示的实现及应用
稀疏矩阵的三元组表示的实现及应用 在现代社会中,在一个大量的人群集体中,总会有和某个人有相互之间的关系或者单向关系的,那我们的矩阵也是如此,稀疏矩阵压缩存储的方式,便可以让这种关系一目了然,巧妙应用. ...
最新文章
- 【数据结构】除去线性表中的重复数字
- java数组 相同颜色距离最远的_java-数组列表并找到具有相同编号的最长子...
- 计组—存储以及字、位扩展
- X264代码中一些参数的意义
- c语言实现socket转json,C++解析JSON进行网络传输--一个通过JSON方式的socket传输
- 爬虫学习一:HTTP、网页基础、requests、API、JS
- 【经典回顾】静态结构不能满足模型部署性能需求?微软提出动态卷积结构,Top-1准确率提高2.9%!(附复现代码)...
- 二进制和八进制表示法
- mysql 安装 权限_MySQL的安装、使用及权限管理
- java使用hashset_JAVA中Set集合--HashSet的使用
- golang 所有进程休眠_Golang基础--常见坑
- android嵌入式面试题,嵌入式软件面试题 经典笔试题(含答案)
- AndroidTestCase常用的两段配置
- hp RAID卡 命令行管理
- python顺序查找算法解释_顺序查找算法详解(包含C语言实现代码)
- 第三季-第7课-动态函数库设计
- JVM垃圾回收机制(一)
- 综合影响力模型InfG算法
- VS简明教程(VS安装、系统建议设置、软件设置、新建工程、发行、编译建议)、VS Code简明教程(安装、汉化、配置python环境、安装插件、新建并运行python程序)
- Mybatis复杂映射映射文件
热门文章
- C#基础5:字符串操作
- bzoj 3378: [Usaco2004 Open]MooFest 狂欢节(BIT)
- jQuery Mobile中导航栏navbar的data-*选项
- R中安装LightGBM(Windows 64位)
- DataGrid中間隔色的實現
- MySQL命令窗口下中文显示乱码的解决过程
- [转载]百分之百自动登录2345王牌技术员联盟源代码(delphi)
- 【WCF】WCF中的InstanceContext与ConcurrencyMode【转】
- 毕业2月有余,苏州同学腐败第二次大聚会
- [转载] python:numpy数学函数和逻辑函数