括号匹配算法的实现(c语言) ) ) ) ) ) ) ) ) ) )。
#包含
#包含
#包含
#define size 50
类型定义结构{
char elem[size];
}seqstack;
语音堆栈(seqstack * s ) )。
{
s-top=-1;
}
{int i=0;
if(s-top==size-1 ) return 1;
Elseif(str!=' ' )
{
s-top;
s-elem[s-top]=str;
}
返回0;
}
{
if(s-top==-1 ) return 1;
else {
printf('%c ',*str );
s-top----;
}
返回0;
}
{
if(s-top==-1 ) return 1;
else{
返回1;
}
}
_boolmatch(charch,char str ) )。
{
if () ch==' ' )|(ch=='{'str=='} )|(ch==' ) ) str==' ) )
返回1;
else
返回0;
}
_ bool isempty (序列* s ) )。
{
if(s-top==-1 ) return 1;
else return 0;
}
是语音积木(char * str )
{
seqstack s,*p;
char ch、sh;
Init堆栈(s;
for(I=0; str[i]!=' '; I )
{
(sitch(str[I] ) ) ) ) ) ) ) )。
{
case'(: )
case'{':
推送(s,str[i];
布雷克;
case ' ) ' :
case'':
case'}':
if(isempty(s ) )
{
printf () (剩下n括号);
}
else{
gttop(s,ch );
if(match(ch,str[i] ) )
{
pop(s,sh );
}
else
{
printf (对应括号不匹配);
返回;
}
}
}
}
if(isempty(s ) )
{
printf () (n括号匹配);
}
else
printf (() ) (剩下左括号) );
}
char str[100],enter,ch;
seqstack s;
Init堆栈(s;
请输入printf ('字符串:n ';
scanf('%s ',str );
扫描(' % c ',enter );
积木匹配(str;
printf((n );
}
这个意外的发现是布尔型的。 如果类型名称为“_Bool”,编译器也可以识别为布尔类型。 前辈写的东西值得参考