簡體   English   中英

如何為二進制搜索樹比較兩個字符串

[英]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){

  }
}

您的程序中目前存在三個問題:

  1. “ else-if”應為“ else if”

  2. strcmp(node-> string,char s)應該是strcmp(node-> string,s)

  3. 沒有主要方法

首先,我認為你應該改變

strcmp(node->string,char s);

並替換為

strcmp(node->string,s);

在strcmp中,如果結果大於零,則第一個參數大於第二個參數。

因此,如果您的if else語句評估為true,則node-> string大於s。

如果strcmp小於零,則第二個參數大於第一個值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM