用棧檢測括號匹配?

用棧檢測括號匹配?巴黎巷尾南巷清天藍2020-01-01 00:17:25

這是其中括號匹配的函式部分:

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(“\n-_-!!!右括號多餘!\n”);

exit(0);

}

else

{

ch=GetTop(&S);

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

Pop(&S);

else

{

printf(“\n-_-!!!對應的左右括號不同類!\n”);

exit(0);

}

}

}

}

if(GetTop(&S)==‘#’)

printf(“\n^_^括號匹配!^_^\n”);

else

{

printf(“\n-_-!!!左括號多餘!\n”);

exit(0);

}

}