我正在尝试实现Prims算法来查找给定图形的最小生成树.代码现在编译,但可执行文件(而不是打印MST)打印"分段错误:11".而且,我得到一个警告,:
Warning: control reaches end of non-void function
Run Code Online (Sandbox Code Playgroud)
有人能帮我理解它有什么问题吗?提前致谢.
double Graph::getWeight(int v, int w)
{
if(edge(v,w))
{
Node* t = adj[v];
while(t != NULL)
{
t = t->next;
if((t ->v) == w)
return t->weight;
}
}
}
Run Code Online (Sandbox Code Playgroud)
警告是指您的getWeight函数表示它将返回a double但实际上仅double在某些条件下返回a 的事实.如果任一if语句为false(即if edge(v,1)为false或if t->v == w始终为false),则该函数不返回任何内容.
如果条件不正确,也许您想要返回一些默认值.
这是否是导致细分错误的原因是另一回事.
| 归档时间: |
|
| 查看次数: |
432 次 |
| 最近记录: |