shydream2 发表于 2020-4-12 14:31:37

数据结构的广义表的求助

大佬们,我这段代码里面有地方无限递归了,导致栈溢出,但是我又找不到问题在哪里,所以请求一下帮助
int CreateGList(GList& LS, char* K) {
    char* hsub;
    char* M;
    M = (char*)malloc(20 * sizeof(char));
    int LEN = strlen(K);
    SubStr(M, K, 1, LEN);
   
    if ((M == "") || (M == NULL)) {
      LS = NULL;
      return 1;
    }
    else{
      if (!(LS = (GList)malloc(sizeof(GLNode)))) {
            printf("OVERFLOW!");
            return -1;
      }
      if (LEN == 3) {
            LS->tag = ATOM;
            LS->atom =M;
            return 1;
      }
      else {
            sever(M, hsub);
            LS->tag = LIST;
            CreateGList(LS->ptr.hp, hsub);
            CreateGList(LS->ptr.tp, M);
            return 1;
      }
    }
   
}

shydream2 发表于 2020-4-12 14:38:31

这个是里面的用来切开广义表的最外层括号的()函数,问题出在这里,但是……还是没找到具体的int SubStr(char*& sub, char* S, int Start, int StrL) {//去括号
    int j;
    for (j = 1; j < Start; S++, j++);//S自增偏移到我们想要开始的地方
    for (j = 0; j < StrL; j++) {
      sub = S;
    }
    sub = '\0';
    return 1;
}
页: [1]
查看完整版本: 数据结构的广义表的求助