我正在创建一个基于有向图的算法。我想要一个能够获取连接到特定节点的所有节点的函数。
public List<Node> GetNodesInRange(Graph graph, int Range, Node selected)
{
var result = new List<Node>();
result.Add(selected);
if (Range > 0)
{
foreach (Node neighbour in GetNeighbours(graph, selected))
{
result.AddRange(GetNodesInRange(graph, Range - 1, neighbour));
}
}
return result;
}
private List<Node> GetNeighbours(Graph graph, Node selected)
{
foreach(Node node in graph.node)
{
if (node == selected)
{
GetNodesInRange(node, Range-1, /*don't know what 2 do here*/);
//and confused all the way down
答案 0 :(得分:2)
这取决于您对图表使用的实现方式:
答案 1 :(得分:0)
您在GetNodesInRange
内拨打GetNeighbours
,在GetNeighbours
内拨打GetNodesInRange
,这就产生了问题。
通过Jack查看答案。
如果您发布Graph
,Node
和Edge
的样子,那么我们将能够提供更多帮助。