栈实现括号匹配

来源:互联网 发布:安装ubuntu覆盖win10 编辑:程序博客网 时间:2024/06/05 15:52

当输入为左括号时,进行压栈操作,当输入为右括号时,判定其与当前栈顶的左括号是否匹配,如果匹配进行弹栈操作,继续判定下面的输入;如果不匹配则输出括号匹配错误。

void bracket(LinkStack *S){    char str[100];    char b,a;    int i;    printf("输入一串括号\n");    scanf("%s",str);    for(i=0;i<strlen(str);i++)    {        if(str[i]=='[')        {            b=str[i];            printf("压入栈的括号是:%c\n",b);            Push(S,b);        }        else if(str[i]==']')        {            a=S->top->data;            b='[';            if(a==b)                Pop(S);            else                printf("括号匹配错误\n");        }        else if(str[i]=='(')        {            b=str[i];            printf("压入栈的括号是:%c\n",b);            Push(S,b);        }        else if(str[i]==')')        {            a=S->top->data;            b='(';            if(a==b)                Pop(S);            else                printf("括号匹配错误\n");        }    }     printf("\n");}
0 0
原创粉丝点击