几个小时以来,我一直在用头撞墙。我不知道该怎么做。我已经多次重组了我的功能,但仍然没有让它正常工作。
这是我的 c++ 课程中的编程作业。它必须有一个特定的形式,如数据类型、参数等,由讲师给出,所以我不能改变任何类似的东西。我们必须使用字符数组,因此使用 strcmp()。如果我们找到它,我们必须返回这个人,如果我们没有找到它,则返回 NULL。
这是我目前正在使用的内容:
person *classname::getPersonByName(char *name, person *rt)
{
if (rt != NULL)
{
if (strcmp(rt->Title, title) == 0)
{
return rt;
}
else
{
getPersonByName(title, rt->left);
getPersonByName(title, rt->right);
//return NULL;
}
}
}
在调试中,它会按名称找到并返回该人。问题是,它会立即覆盖我的回报,因此不会以正确的人结束。
被注释掉的底部的 NULL 最终将每次调用都设置为 NULL,无论搜索是否找到它。