我试图加载一个包含两个infor的文件,并将它们添加到一个二叉树中。当然addToTree和printPreOrder函数没有问题,但是我不知道为什么我只能打印(或者可能添加)文件中的最后一项。有什么问题吗?
newTree = createBinTree(&cmpInt, &destroyNode);
newRes = createRes();
while (fgets(buffer, 100, fp) != NULL)
{
strcpy(newRes->name,strtok(buffer, ","));
strcpy(newRes->food,strtok(NULL, ","));
newRes->star = atoi(strtok(NULL, ","));
addToTree(newTree, newRes);
}
printPreOrder(newTree, &printNode);
最佳答案
您总是添加到指向newRes
的同一指针。阅读时,您会覆盖以前的newRes
条目。您需要为正在读取的每个对象调用createRes
。