【问题标题】:Algorithm that will grab all nodes attached to a particular node将抓取连接到特定节点的所有节点的算法
【发布时间】:2010-04-19 01:47:46
【问题描述】:

我正在创建一个基于有向图的算法。我想要一个函数来抓取所有连接到特定节点的节点。

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

【问题讨论】:

标签: algorithm graph


【解决方案1】:

这取决于您对图表使用的实现类型:

  • 边列表:搜索所有具有指定顶点作为边的第一个或第二个参数的边
  • 邻接列表:附加到节点的列表已经是与其相关的节点列表
  • 邻接矩阵:取所选顶点的列(或行)

【讨论】:

    【解决方案2】:

    您在GetNeighbours 内调用GetNodesInRange 和在GetNodesInRange 内调用GetNeighbours,这会产生问题。

    Jack的答案。

    如果您发布您的GraphNodeEdge 的样子,那么我们将能够提供更多帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-02
      • 2023-03-28
      • 1970-01-01
      • 1970-01-01
      • 2017-03-13
      • 1970-01-01
      相关资源
      最近更新 更多