这道题要求我们判断输出的一个字符串中的括号是否符合运算规律。可以运用栈的思想。如果一个括号是左括号就入栈,如果输出一个右括号就将它和栈头的左括号对比,符合就出栈(相当于消掉)。最后如果还有没消掉的括号就是不符合规定。
话不多说上代码:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define max 1000
#define ok 1
#define error 0
typedef struct
{char a[max];int top;
}seq;
void InitStack(seq *s)//初始化
{s->top=-1;
}
int Push(seq*s,char x)//元素入栈
{if(s->top==max-1) return (error);s->top++;s->a[s->top]=x;return (ok);
}
int Pop(seq *s,char* x)//元素出栈
{if(s->top==-1) return(error);else{*x=s->a[s->top] ;s->top--;return(ok);}
}
int GetTop(seq*s,char*x)//将栈顶元素读取到x中
{if(s->top==-1) return (error);else{*x=s->a[s->top];return (ok);}
}
int Match(char a,char b)//检测两个括号是否匹配
{if((a=='('&&b==')')||(a=='['&&b==']')||(a=='{'&&b=='}')) return (ok);else return 0;
}
int IsEmpty(seq *s)//检测栈是否为空
{if(s->top==-1) return (ok);else return(error);
}
void BracketMatch(char *str)
{seq s;int i;char ch;InitStack(&s);for(i=0;str[i]!='\0';i++){switch(str[i]){case'(':case'[':case'{':Push(&s,str[i]);break;//如果是前括号,就入栈case')':case']':case'}':if(IsEmpty(&s)) {printf("no");return;}//空表no右括号多余else{GetTop(&s,&ch);if(Match(ch,str[i]))  Pop(&s,&ch);//匹配的括号消掉else{printf("no");return;}//括号不同类}}}if(IsEmpty(&s)) printf("yes");else  printf("no");//左括号多余
}
int main()
{char str[max];scanf("%s",str);BracketMatch(str);return 0;
}

西北工业大学noj数据结构表达式括号匹配(严3.19)相关推荐

  1. 西北工业大学NOJ数据结构—014求广义表深度

    #include <stdio.h> #include <stdlib.h>typedef struct Node {int A_L;//使用枚举不熟练,A_T代表Atom或L ...

  2. 西北工业大学NOJ Python程序设计作业91-100

    各位同学,创作不易,能否在文末打赏一瓶饮料呢?(^ _ ^)(文章末尾右下角处) 西北工业大学NOJ-Python程序设计作业题解集合: NOJ-Python程序设计:第1季:水题(Season 1- ...

  3. 西北工业大学NOJ(C语言)(更新中)

    西北工业大学noj100题(C语言) 1.计算A+B 2.圆及圆球等的相关计算 3.计算成绩 4.找最大数 5.找幸运数 6.奖金发放 7.出租车费 8.是该年的第几天? 9.成绩转换 10.求建筑高 ...

  4. 西北工业大学NOJ Python程序设计作业71-80

    各位同学,创作不易,能否在文末打赏一瓶饮料呢?(^ _ ^)(文章末尾右下角处) 西北工业大学NOJ-Python程序设计作业题解集合: NOJ-Python程序设计:第1季:水题(Season 1- ...

  5. 数据结构--表达式括号匹配和运算

    多项式括号匹配: #include <stdio.h> #include <malloc.h>#define STACK_MAX_SIZE 10//创建栈结构体 typedef ...

  6. 西北工业大学NOJ-Python程序设计作业81-90

    各位同学,创作不易,能否在文末打赏一瓶饮料呢?(^ _ ^)(文章末尾右下角处) 西北工业大学NOJ-Python程序设计作业题解集合: NOJ-Python程序设计:第1季:水题(Season 1- ...

  7. 西北工业大学c语言程序设计试题,西北工业大学15春《C语言程序设计》在线作业答案...

    西北工业大学15春<C语言程序设计>在线作业9 t# F4 Z* m* M% N" T- d 试卷总分:100   测试时间:--- u7 j) [/ o# B& [2 ...

  8. 西北工业大学NOJ-Python程序设计作业1-10

    各位同学,创作不易,能否在文末打赏一瓶饮料呢?(^ _ ^)(文章末尾右下角处) 西北工业大学NOJ-Python程序设计作业题解集合: NOJ-Python程序设计:第1季:水题(Season 1- ...

  9. 洛谷——P1739 表达式括号匹配

    P1739 表达式括号匹配 题目描述 假设一个表达式有英文字母(小写).运算符(+,-,*,/)和左右小(圆)括号构成,以"@"作为表达式的结束符.请编写一个程序检查表达式中的左右 ...

最新文章

  1. cnblog写博客还不错嘛
  2. git reset revert 回退回滚取消提交返回上一版本
  3. UNIX再学习 -- 死磕内存管理
  4. 企业级 oracle11G r2 DataGuard 安装配置
  5. 听说做开发的工资随随便便就上10k?
  6. windows安装ruby on rails
  7. 会议容易中吗_拉伸、缩放、比例,这些CAD中容易混淆的概念你搞清楚了吗?
  8. 动态规划C语言实现之最长公共子序列(LCS)
  9. Unity之UGUI初探—按钮动画
  10. 服装设计与工程_百度百科
  11. Windows 文本编辑器 EditPlus 的简单使用
  12. 2014年11月份工作日志 模板样例
  13. 文本分析主要包含哪些技术,文本分析技术的发展方向是什么?
  14. c语言模拟开关题目,8x16 模拟开关阵列芯片 CH446Q.PDF
  15. 硬盘数据被覆盖了怎么恢复
  16. cpu性能诊断工具turbostat详解
  17. 简单总结下目前市场常见的理财产品
  18. PXE自动安装Linux系统
  19. 火柴人生存挑战2html5游戏在线玩,火柴人生存挑战
  20. Codeforces Round #361 (Div. 2) C 二分

热门文章

  1. Python property函数:定义属性
  2. spring getway的配置
  3. 在线免费完整PDF转PPT格式
  4. mac运行.py提示缺少模块的解决方法
  5. 阿里云短信验证码提示“Message“:“模板变量缺少对应参数值“
  6. CC3200学习系列--芯片简介
  7. 都说在阿里年薪百万不难,面试入职阿里需要准备什么?
  8. 《Filter Pruning using Hierarchical Group Sparse》ICPR2020论文详解
  9. SQL Server日期时间字符串的处理和转换
  10. execution(表达式)总结 AOP