求助!C语言栈数据结构关于栈的问题

为什么我写的顺序栈显示null?
图片说明

#include <stdio.h>

#define MAXSIZE 20

typedef struct {
    char c[MAXSIZE];
    int top;
}SeqStack;

int initSeqStack(SeqStack *ss){
    ss->top = -1;
    return 0;
}

int destorySeqStackA(SeqStack *ss){
    while (ss->c[ss->top] != '(') {
        ss->c[ss->top] = 'N';
        ss->top--;
    }
    if (ss->c[ss->top] == '{') {
        ss->c[ss->top] = 'N';
        ss->top--;
    }
    if (ss->top == -2) {
        return 0;
    }
    return 1;
}

int destorySeqStackB(SeqStack *ss){
    while (ss->c[ss->top] != '[') {
        ss->c[ss->top] = 'N';
        ss->top--;
    }
    if (ss->c[ss->top] == '[') {
        ss->c[ss->top] = 'N';
        ss->top--;
    }
    if (ss->top == -2) {
        return 0;
    }
    return -1;
}

int destorySeqStackC(SeqStack *ss){
    while (ss->c[ss->top] != '{') {
        ss->c[ss->top] = 'N';
        ss->top--;
    }
    if (ss->c[ss->top] == '{') {
        ss->c[ss->top] = 'N';
        ss->top--;
    }
    if (ss->top == -2) {
        return 0;
    }
    return -1;
}

int push(SeqStack *ss, char *str, int i){
    ss->top++;
    ss->c[ss->top] = str[i];
    return 0;
}

int bracketmatch(char *str) {
    SeqStack *ss;
    initSeqStack(ss);
    int i = 0;
    while (str[i] != '\0') {
        push(ss, str, i);
        if (str[i] == ')') {
            destorySeqStackA(ss);
        }
        if (str[i] == ']') {
            destorySeqStackB(ss);
        }
        if (str[i] == '}') {
            destorySeqStackC(ss);
        }
        if (destorySeqStackA(ss) == 0 || destorySeqStackB(ss) == 0 || destorySeqStackC(ss) == 0) {
            return 0;
        }
    }
    return 1;
}

int main(int argc, char* argv[])
{
    char *str="(1+5)*6 + ({3-5 + [5*9] +4}-6)";
    char *str1="(1+5)*6 + ({3-5 + [5*9] +4}-6)}";
    if(bracketmatch(str))
        printf("str bracket match OK!\n");
    else
        printf("str bracket match ERROR!\n");

    if(bracketmatch(str1))
        printf("str1 bracket match OK!\n");
    else
        printf("str1 bracket match ERROR!\n");

    return 0;
}

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 以帮助更多的人 ^-^