如何比较二叉搜索树的两个字符串

How to compare two strings for a binary search tree

我正在尝试比较两个字符串以查看它作为叶节点应该从根到第四个的位置。我一直尝试使用字符串比较,但出现错误。我对 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){

  }
}

首先我认为你应该改变

strcmp(node->string,char s);

并替换为

strcmp(node->string,s);

在 strcmp 中,如果结果大于零,则第一个参数大于第二个。

因此,如果您的 if else 语句计算结果为真,则 node->string 大于 s。

如果 strcmp 小于零,则第二个参数大于第一个值。

您的程序目前存在三个问题:

  1. "else-if" 应该是 "else if"

  2. strcmp(node->string,char s) 应该是 strcmp(node->string, s)

  3. 无主要方法