我正在做二叉树的c程序,同时在2到3个节点后将节点插入到树中,子节点有垃圾值和崩溃,我在xcode中做的任何想法…
Bnode createTreeNode()
{
Bnode node=(Bnode)malloc(sizeof(Bnode));
return node;
}
Bnode addTreeNode(Bnode inNode, char *inData)
{
int compareValue;
if (inNode == NULL)
{
inNode = createTreeNode();
inNode->leftNode=NULL;
inNode->rightNode=NULL;
stpcpy(inNode->data,inData);
}
else if((compareValue=strcmp(inData,inNode->data))==0)
{
inNode->count=inNode->count+1;
}
else if(compareValue>1)
{
inNode->rightNode=addTreeNode(inNode->rightNode,inData);
}
else
{
inNode->leftNode = addTreeNode(inNode->leftNode,inData);
}
return inNode;
}这就是我如何创建节点并将其插入到树中。
发布于 2010-04-20 01:59:39
您为节点声明了一个指针,但实际上并没有为它分配任何存储空间,所以您有一个dangling pointer。您需要为每个新节点调用malloc() (或calloc()),以便分配存储。
https://stackoverflow.com/questions/2669549
复制相似问题