括号匹配---栈的应用
来源:互联网 发布:windows内存占用高 编辑:程序博客网 时间:2024/05/13 16:45
输入一个表达式,表达式中包括三种括号“()”、“[]”和“{}”,判断该表达式的括号是否匹配。
//括号匹配 #include <stdio.h>#include <string.h>typedef struct Stack{char base[200];int top;int Stacksize;}Stack;void InitStack(Stack &S){//建立一个空栈S.Stacksize=200;S.top=0;}void Push(Stack &S,char ch){//入栈操作if(S.top+1>S.Stacksize){printf("栈满,操作失败.");return ;}S.base[S.top++]=ch;}void top(Stack &S,char &ch){//出栈操作ch=S.base[--S.top];}int StackEmpty(Stack S){//判断栈是否为空if(S.top==0)return 1;return 0;}int Judge(char *str,Stack &S){//判断括号是否匹配int len,i,j;char ch;len=strlen(str);for(i=0;i<len;i++){if(str[i]=='[' || str[i]=='(' || str[i]=='{')Push(S,str[i]);else if(str[i]== ']' || str[i]== ')' ||str[i]== '}'){if(StackEmpty(S))return 0;top(S,ch);if(str[i]==')' && ch=='(' || str[i]=='}' && ch=='{' || str[i]==']' && ch=='[')continue; else return 0;}} if(StackEmpty(S)) return 1; else return 0;}int main(){Stack S;char str[100];int judge;InitStack(S);printf("请输入算术表达式:");scanf("%s",str);judge=Judge(str,S);if(judge)printf("算数表达式括号正确\n");elseprintf("括号不匹配。\n");return 0;}
0 0
- 栈的应用:括号匹配
- 括号匹配---栈的应用
- 栈的应用---括号匹配
- 栈的应用---括号匹配
- 栈的应用--括号匹配()
- 括号匹配 栈的应用
- 栈的应用--括号匹配
- 栈的应用-括号的匹配
- 栈的应用-括号的匹配
- 栈的应用--括号匹配的检验
- 栈的应用举例:括号的匹配
- 栈的应用之括号的匹配
- 栈的应用之括号的匹配
- 栈的应用之括号匹配
- 栈应用--括号匹配的检验
- 数据结构栈的应用之括号匹配
- 栈的应用之括号匹配
- 数据结构之 栈的应用 括号匹配
- CF 400E Inna and Binary Logic(多维线段树)
- iOS开发自学心得
- CF581D三个矩形能否构成一个无空隙的正方形
- 万仙楼的黄金牌坊
- js遍历Java List<Map<String,Object>>集合
- 括号匹配---栈的应用
- 动态链接库
- 华为机试——识别字符串中的整数并转换成数字形式
- 黑马程序员---Elicpse
- 03Android UiAutomator UiDevice API 详细介绍
- ios身份证号正则
- 初学的几点建议
- Bhattacharyya distance(巴氏距离)
- 不用循环输出九九乘法表