我在图形中找到停止路径时遇到问题。
例如,什么是平均停止路径。 在开始和结束之间还有其他路径。 2-3-2(2站),2-4-1-2(3站)
问题是如何编写函数以使从开始到结束的路径数小于或等于最大停止值。
图形数据在这里 0-1 1-2 2-3 3-2 3-4 0-3 2-4 4-1 0-4
这是我的职能
public List<string> GetAllPathsWithStop(int start, int end, List<int> onPath, int withStop, int maxStop)
{
onPath.Add(start);
var allPaths = new List<string>();
if (withStop > maxStop)
{
return new List<string>();
}
if (start == end && withStop > 0 && withStop <= maxStop)
{
return new List<string> { string.Join("-", onPath) };
}
foreach (var edge in GetAdjacency(start))
{
var tmpPaths = GetAllPathsWithStop(edge.ToEdge, end, onPath, withStop + 1, maxStop);
if (tmpPaths.Any())
{
allPaths.AddRange(tmpPaths);
}
onPath = onPath.Take(onPath.Count - 1).ToList();
}
return allPaths;
}
但是我无法以2个起点和2个终点(最多3个终点)获得正确的路径。
有人会帮助我吗?