C# Dijsktra';C语言中的s算法#
我试图用C#实现Dijsktra的算法 我的代码在从最短路径树中尚未包含的顶点集中查找具有最小距离值的顶点的函数中出错 错误表示使用了未分配的局部变量“min\u index”。并且在返回min\u index时发生 你能告诉我我做错了什么吗 下面是函数的代码=C# Dijsktra';C语言中的s算法#,c#,function,dijkstra,shortest-path,C#,Function,Dijkstra,Shortest Path,我试图用C#实现Dijsktra的算法 我的代码在从最短路径树中尚未包含的顶点集中查找具有最小距离值的顶点的函数中出错 错误表示使用了未分配的局部变量“min\u index”。并且在返回min\u index时发生 你能告诉我我做错了什么吗 下面是函数的代码= // Utility function to find the vertex with minimum distance value, from // the set of vertices not yet inclu
// Utility function to find the vertex with minimum distance value, from
// the set of vertices not yet included in shortest path tree
int minDistance (int[] dist, bool[] sptSet)
{
// Initialize min value
int min = INT_MAX, min_index;
for (int v = 0; v < V; v++)
{
if (sptSet[v] == false && dist[v] <= min)
{
min = dist[v];
min_index = v;
}
}
return min_index;
}
//查找具有最小距离值的顶点的实用函数,从
//尚未包含在最短路径树中的顶点集
内部距离(内部[]距离,布尔[]标准点)
{
//初始化最小值
int min=int_MAX,min_索引;
对于(int v=0;v 如果(sptSet[v]==false&&dist[v]您的方法可能会返回从未设置的min\u索引的值。
您应该在执行以下操作之前对其进行初始化:
int min = INT_MAX;
int min_index = -1;
您的方法可能会返回从未设置过的min\u索引的值。
您应该在执行以下操作之前对其进行初始化:
int min = INT_MAX;
int min_index = -1;
您的方法可能会返回从未设置过的min\u索引的值。
您应该在执行以下操作之前对其进行初始化:
int min = INT_MAX;
int min_index = -1;
您的方法可能会返回从未设置过的min\u索引的值。
您应该在执行以下操作之前对其进行初始化:
int min = INT_MAX;
int min_index = -1;
我认为如果你的if条件每次都失败,你是在尝试返回一个未赋值的值。我认为如果你的if条件每次都失败,你是在尝试返回一个未赋值的值。我认为如果你的if条件每次都失败,你是在尝试返回一个未赋值的值。I设想一下,如果您的if条件每次都失败,您正试图返回一个未赋值的值。这不是对您的问题的回答,但更清楚的是说!sptSet[v]
而不是sptSet[v]==false
。这不是对您的问题的回答,但更清楚的是说!sptSet[v]
而不是sptSet[v]==false
。这不是对你的问题的回答,但是说!sptSet[v]
更清楚,而不是sptSet[v]==false
。这不是对你问题的回答,但是说!sptSet[v]
而不是sptSet[v]==false
更清楚。