将节点添加到树问题[关闭]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将节点添加到树问题[关闭]相关的知识,希望对你有一定的参考价值。

我在向搜索树添加节点时遇到问题。我有很多错误,比如“指针和整数之间的比较”和“期望的char但参数类型为char *”。这是我的代码:

 void addNode(WordTreeNode ** tree, char tok)
 {
   WordTreeNode *temp = NULL;
   if(!(*tree))
   {
      temp = (WordTreeNode *)malloc(sizeof(WordTreeNode));
      temp->leftChild = temp->rightChild = NULL;
      temp->name = tok;
      *tree = temp;
      return;
   }

   if(tok < (*tree)->name)
   {
      addNode(&(*tree)->leftChild, tok);
   }
   else if(tok > (*tree)->name)
   {
      addNode(&(*tree)->rightChild, tok);
   }

}
答案

我认为你的成员namechar *类型。使用strcmp而不是<>char*而不是char。将您的代码更改为:

void addNode(WordTreeNode ** tree, char * tok)
                                     // ^
{
    WordTreeNode *temp = NULL;
    if(!(*tree))
    {
        temp = (WordTreeNode *)malloc(sizeof(WordTreeNode));
        temp->leftChild = temp->rightChild = NULL;

        temp->name = malloc( strlen(tok)+1 );
        strcpy( temp->name, tok );
        // don't forget to free the memory when youe destroy the node

        *tree = temp;
        return;
    }

    if( strcmp( tok, (*tree)->name) < 0 )
     // ^^^^^^
    {
        addNode(&(*tree)->leftChild, tok);
    }
    else if ( strcmp( tok, (*tree)->name) > 0 )
           // ^^^^^^
    {
        addNode(&(*tree)->rightChild, tok);
    }
}

以上是关于将节点添加到树问题[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

VB.NET 如何将子节点添加到树视图中的特定节点

使用唯一指针将节点添加到树

将复选框列添加到树左侧的 QTreeView 的方法?

将图像添加到树视图控件 xamarin 表单中

跟踪从图的节点到树的最小高度

通过单击箭头在树 extjs 3 中加载节点