我试图比较两个字符串,看看它作为叶节点从根到第四个应该去哪里。我一直在尝试使用字符串比较,结果出现了一个错误。我对c中的二叉树非常不熟悉,需要帮助插入节点。
这是我迄今为止的代码,它给了我一个错误:
#include <stdio.h>
#include <stdlib.h>
#define MAXLEN 15
typedef struct treeNode{
char string[MAXLEN+1];
struct treeNode *left;
struct treNode *right;
}treeNode;
treeNode * insert(treeNode *node, char s[MAXLEN+1]){
if(node == NULL){
treeNode *temp;
temp = (treeNode *)malloc(sizeof(treeNode));
strncpy(temp -> string, s, sizeof(treeNode));
temp -> left = NULL;
temp -> right = NULL;
return temp;
}
else-if(strcmp(node->string,char s)>0){
}
}
您的程序现在有三个问题:
-
"else-if"应该是"else-if"
-
strcmp(node->string,char s)应该是strcmp
-
无主要方法
首先我认为你应该更改
strcmp(node->string,char s);
并将其替换为
strcmp(node->string,s);
在strcmp中,如果结果大于零,则第一个参数大于第二个参数。
因此,如果if-else语句的求值结果为true,则node->string大于s。
如果strcmp小于零,则第二个参数大于第一个值。