第六周 项目三 括号的匹配
来源:互联网 发布:大神码字软件下载 编辑:程序博客网 时间:2024/04/28 16:31
/* *Copyright (c)2015, 烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:Graph.cpp *作 者:苏凯祺 *完成日期:2014年12月14号 *版 本 号:v1.0 *问题描述:假设表达式中允许三种括号:圆括号、方括号和大括号。编写一个算法,判断表达式中的各种左括号是否与右括号匹配。 例如,输入2+(3+4)*[2+{[3]}]-8,输出匹配正确;输入2+(3+4*[2)+{[3]}-8,输出匹配错误。提示:(1)遇到左括号入栈,遇到右括号后,出栈一个符号,看是否配对。若配对,继续,直到读完所有的符号,栈也正好为空。若在中间出现一个不配对的,或者_____________,则可以得出不配对的结论。(2)也可以设计一个返回值为布尔型的函数,参数为要配对的表达式,为一个字符串。*头文件sqstack.h请见[顺序栈算法库],使用链栈也可以。*/ #include <stdio.h>#include "sqstack.h"int main(){ char c; char st[50]; int d=1, i; SqStack *s; InitStack(s); printf("请输入表达式:"); scanf("%s", st); 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; break; case']': Pop(s, c); if(c!='[') d=0; break; case'}': Pop(s,c); if(c!='{') d=0; break; } } if(StackEmpty(s)&&d==1) printf("配对正确!!\n"); else printf("配对错误!!\n"); return 0;}
运行结果:
0 0
- 第六周项目三~~~括号的匹配
- 第六周--项目三--括号的匹配
- 第六周 项目三-括号的匹配
- 第六周项目三 括号的匹配
- 第六周项目三:括号的匹配
- 第六周 项目三 括号的匹配
- 第六周项目三—括号的匹配
- 第六周--项目3括号的匹配
- 第六周 项目3-括号的匹配
- 第六周项目6括号的匹配
- 第六周项目3括号的匹配
- 第六周 项目3 括号的匹配
- 第六周 项目3-括号的匹配
- 第六周项目3-括号的匹配
- 第六周项目3--括号的匹配
- 第六周项目3-括号的匹配
- 第六周-项目3-括号的匹配
- 第六周项目3-括号的匹配
- SQLITE 在 ANDROID 中的详细使用
- linux shell 脚本学习笔记--$ 和重定向>
- C++ ERROR redefinition of ‘class ***’
- java基础之IO技术_2
- Navicat 链接虚拟机MySQL失败(GRANT ALL PRIVILEGES)
- 第六周 项目三 括号的匹配
- 第16周实践项目-选择排序之直接选择排序
- 第15周项目1 验证算法
- 第十四周项目一:验证折半查找算法
- 整数的二进制表示中1的个数
- Shell实用技巧:快速去除字符串中的空格
- iOS面试题库(精华版)
- Formal sys-pradicate syntax
- iOS UITableView分割线颜色,长度自定义