括号匹配问题有逻辑错误,谁能帮忙看看

括号匹配问题,能不能帮我看一下,这个括号匹配问题,我里面的 [()] 怎么就不能匹配呢

图片说明图片说明

[和]并不相等,需要做一个转换
char conv(char ch)
{
if (ch == '(') return ')';
if (ch == ')') return '(';
if (ch == '[') return ']';
if (ch == ']') return '(';
if (ch == '{') return '{';
if (ch == '}') return '}';
return 'X';
}
然后再
if (S->to == conv(S->stacksize-1))