我正在尝试比较两个字符串,以查看它应该从根目录中作为叶节点的位置,因此第四个。我一直在尝试使用字符串比较,我得到一个错误。我对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){
}
}
答案 0 :(得分:1)
您的计划目前有三个问题:
“else-if”应为“else if if”
strcmp(node-&gt; string,char s)应为strcmp(node-&gt; string,s)
没有主要方法
答案 1 :(得分:0)
首先我认为你应该改变
strcmp(node->string,char s);
并将其替换为
strcmp(node->string,s);
在strcmp中,如果结果大于零,则第一个参数大于第二个参数。
因此,如果if else语句的计算结果为true,则node-&gt; string大于s。
如果strcmp小于零,则第二个参数大于第一个值。