数据结构的广义表的求助
大佬们,我这段代码里面有地方无限递归了,导致栈溢出,但是我又找不到问题在哪里,所以请求一下帮助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;
}
}
} 这个是里面的用来切开广义表的最外层括号的()函数,问题出在这里,但是……还是没找到具体的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]