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

时间:2015-02-14 03:03:51

标签: c binary-tree 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){

  }
}

2 个答案:

答案 0 :(得分:1)

您的计划目前有三个问题:

  1. “else-if”应为“else if if”

  2. strcmp(node-&gt; string,char s)应为strcmp(node-&gt; string,s)

  3. 没有主要方法

答案 1 :(得分:0)

首先我认为你应该改变

strcmp(node->string,char s);

并将其替换为

strcmp(node->string,s);

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

因此,如果if else语句的计算结果为true,则node-&gt; string大于s。

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