栈:WHT解决括号匹配问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了栈:WHT解决括号匹配问题相关的知识,希望对你有一定的参考价值。
#include<iostream>
using namespace std;
#define stacksize 100;
struct stack
{
char strstack[stacksize];
int top;
};
void InitStack(stack &s)
{
s.top=-1;
}
char push(stack &s,char a)
{
if(s.top==stacksize-1)
return 0;
s.top++;
s.strstack[s.top]=a;
return a;
}
char pop(stack &s)
{
if(s.pop==-1) return 0;
char a=s.strstack[s.top];
s.top--;
return 0;
}
int empty(stack &s,int re)
{
if(s.top==-1)return 1;
else return 0;
}
int check(char*str)
{
stack s;
InitStackj(s);
int strn=strlen(str);
for(int i=0;i<strn;i++)
{
char a=str[i];
switch (a)
{
case‘(‘;
case‘{‘;
case‘[‘;
push(s,a);
break;
case‘)‘;
if(pop(s)!=‘(‘) return 0;
break;
case‘}‘;
if(pop(s)!=‘{‘) return 0;
break;
case‘]‘;
if(pop(s)!=‘{‘) return 0;
break;
}
}
int re=0;
re=empty(s,re); return 1;
else return 0;
}
void main()
{
char str[100];
cin>>str;
int re=check(str);
if(re==1)
cout<<"yes";
else if(re==0)
cout<<"no";
system("pause");
return 0;
}
这个程序哪里错了?
请大神们帮帮忙。
以上是关于栈:WHT解决括号匹配问题的主要内容,如果未能解决你的问题,请参考以下文章