您会得到重复的行,因为存在重复的边。我不是图论专家,但我很确定这是不合法的:
0 => array ( 0 => 'nominal', 1 => 'subtotal', ), 2 => array ( 0 => 'nominal', 1 => 'subtotal', ), ...
您可以在构造节点的部分中添加测试,如下所示:
if ($id==$e[0] && !in_array($e[1], $nodes[$id]['out'])) { $nodes[$id]['out'][]=$e[1]; } if ($id==$e[1] && !in_array($e[0], $nodes[$id]['in'])) // Not needed but cleaner { $nodes[$id]['in'][]=$e[0]; }
…或者只是确保您没有将重复的边传递给该函数。:P
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)