C++ 二叉树不';无法从文件重建
我是数据结构方面的新手,我们被指派使用二叉树实现做一个猜测游戏。我已经完成了没有文件实现的程序流程。我已经在一个外部文件中预先保存了二叉树,现在我在从文件中重建二叉树时遇到了问题 在我的档案中,我有: 是安吉尔·洛辛吗?:#内能B?是山姆·平托吗##白美人?是吗 玛丽安·里维拉##火辣性感?是克里斯蒂娜·雷耶斯吗### “#”表示空节点 我也有我的代码。我遵循教授给我的算法。我在互联网上搜索,给出了和我教授所说的相同的算法。我的问题是程序每崩溃三分之一的非空数据。我认为崩溃的主要原因是在插入第三个非null数据后没有将节点设置为null。如果是这样,我如何将其设置为NULL以便我的程序不会崩溃。我将文件中的数据分配到字符串数组中,并在数组的最后一个索引处设置“\0”C++ 二叉树不';无法从文件重建,c++,codeblocks,C++,Codeblocks,我是数据结构方面的新手,我们被指派使用二叉树实现做一个猜测游戏。我已经完成了没有文件实现的程序流程。我已经在一个外部文件中预先保存了二叉树,现在我在从文件中重建二叉树时遇到了问题 在我的档案中,我有: 是安吉尔·洛辛吗?:#内能B?是山姆·平托吗##白美人?是吗 玛丽安·里维拉##火辣性感?是克里斯蒂娜·雷耶斯吗### “#”表示空节点 我也有我的代码。我遵循教授给我的算法。我在互联网上搜索,给出了和我教授所说的相同的算法。我的问题是程序每崩溃三分之一的非空数据。我认为崩溃的主要原因是在插入第三
void read(node *temp)
{
while(array[j]=="#")
j++;
if(array[j]=="\0")
return;
node *nNode;
nNode = new node;
nNode->yes=NULL;
nNode->no=NULL;
nNode->data=array[j];
j++;
temp=nNode;
read(temp->yes);
read(temp->no);
}
您的问题在于读取函数的定义。我猜这个想法是“temp”是一个类型为“node*”的输出参数。但这不是你写的。 您需要有一个指向“node*”参数的指针或引用,例如:
void read(节点**temp)
然后调整代码的其余部分,以便通过适当的(反)引用进行编译。这会解决你的车祸