为了账号安全,请及时绑定邮箱和手机立即绑定

用C++设计一个算法,判别一个算术表达式的圆括号是否配对正确。

用C++设计一个算法,判别一个算术表达式的圆括号是否配对正确。

C++
qq_宸子_04228031 2017-04-13 13:28:00
查看完整描述

1 回答

已采纳
?
asd8532

TA贡献143条经验 获得超187个赞

#include "stdio.h"
void BracketMatch(char *str) /* str[]中为输入的字符串,利用堆栈技术来检查该字符串中的括号是否匹配*/
{
    SeqStack 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("\n右括号多余!");  
                return;
            }
            else
            {
                GetTop(&S,&ch);
                if(Match(ch,str[i]))  /*用Match判断两个括号是否匹配*/
                    Pop(&S,&ch);      /*已匹配的左括号出栈*/
                else
                {
                    printf("\n对应的左右括号不同类!");  
                    return;
                }
            }
        }/*switch*/
    }/*for*/
    if(IsEmpty(&S))
        printf("\n括号匹配!");
    else
        printf("\n左括号多余!");
}
 
void main()
{
    char str[100];
    printf("please input:");
    gets(str);
    BracketMatch(str);
}


查看完整回答
反对 回复 2017-04-15
  • 1 回答
  • 0 关注
  • 3731 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信