【发布时间】:2014-11-20 06:20:15
【问题描述】:
我创建了许多不同业务的二叉树。树上的每个节点都是一个独立的、唯一的业务。这些企业中的每一个都可能有多个位置。这些位置存储在一个简单的单链表中。
我在尝试向链表添加额外的位置节点时遇到了麻烦。 我将附加位置传递给二叉树的顶部根,我想将顶部根返回到我的主函数,除非添加了一个新的位置节点。当一个企业被确认匹配时,我运行这些功能。我需要追加返回二叉树,修改为在一个二叉节点上具有另一个位置节点。
BusinessNode *appendLocation(char * name, BusinessNode * root, FILE * LocPtr){
BusinessNode * temp = root;
LocationNode * newLoc = NULL;
newLoc = create_LocationNode(LocPtr);
temp = tree_search_name(name, root); //will return location where matching biz is found
temp->head = addLoc(root->head,newLoc);
printf("temp->head->next->LocPtr %ld", temp->head->next->LocPtr);
SEGFAULT 未添加下一个位置
return root; // somehow needs to return the whole modified binary tree
}
LocationNode * addLoc(LocationNode* root, LocationNode * newLoc){
if(root != NULL){
root -> next = addLoc(root->next, newLoc);
}
return root;
}
【问题讨论】:
-
addLoc是一个绝对什么都不做的递归函数。
标签: c struct linked-list