将节点添加到树问题[关闭]
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);
}
}
答案
我认为你的成员name
是char *
类型。使用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);
}
}
以上是关于将节点添加到树问题[关闭]的主要内容,如果未能解决你的问题,请参考以下文章