全站数据
8 4 2 0 5 8 1

用栈检测括号匹配

好药师 | 简单学习,快乐成才!         
问题更新日期:2024-10-12 16:14:16

问题描述

用栈检测括号匹配急求答案,帮忙回答下
精选答案
最佳答案

这是其中括号匹配的函数部分:

voidmatch(SeqStackS,char*str)//括号的比较

{

inti;

charch;

for(i=0;str[i]!='

0';i++)

{

switch(str[i])

{

case'(':

case'[':

case'{':

Push(&S,str[i]);

break;

case')':

case']':

case'}':

if(GetTop(&S)=='#')

{

printf(

"

-_-!!!右括号多余!

");

exit(0);

}

else

{

ch=GetTop(&S);

if(Compare(ch,str[i]))

Pop(&S);

else

{

printf(

"

-_-!!!对应的左右括号不同类!

");

exit(0);

}

}

}

}

if(GetTop(&S)=='#')

printf(

"

^_^括号匹配!^_^

");

else

{

printf(

"

-_-!!!左括号多余!

");

exit(0);

}

}