大家好,我的 pset3 上的锁对功能有问题,tideman 希望得到一些反馈
bool checkcycle(int from, int to)
{
if(from == to)
{
return true;
}
int i;
for (i = 0; i < candidate_count; i++)
{
if(locked[from][i])
{
checkcycle(i,to);
}
}
return false;
}
void lock_pairs(void)
{
for (int i = 0; i < candidate_count; i++)
{
if(!checkcycle(pairs[i].winner , pairs[i].loser))
{
locked[pairs[i].winner][pairs[i].loser] = true;
}
return;
}
}
:( lock_pairs 在没有循环时锁定所有对
lock_pairs 没有锁定所有对
:( lock_pairs 如果创建循环则跳过最后对
lock_pairs 没有正确锁定所有非循环对
:( lock_pairs 如果创建循环则跳过中间对
lock_pairs 没有正确锁定所有非循环对
你的 checkcycle 函数只需要一点调整。我会改变from
to winner
and to
to loser
。我认为这样会更容易理解。给定一对,你会调用checkcycle(winner, loser)
。检查后是否winner == loser
,您应该迭代所有对,检查是否loser
is the winner
,并调用checkcycle(winner, loser)
,通过相同的原始获胜者,以及失败者的失败者
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)