如何计算2个顶点之间的所有最短路径?

时间:2015-12-20 15:22:16

标签: c# algorithm graph breadth-first-search

因此,如果我在图中有两个顶点,并且它们通过多个边连接,同时它们之间具有相同的最短路径(即,如果我有节点A和节点B并且它们通过三条边直接连接(那里)每个距离之间有3条最短路径1)所以计数应该返回3)如何修改BFS算法来实现呢?这是我的代码,它只计算2个节点之间的最短路径,但不计算这些最短路径的数量。

public void BFSDegree(Graph g, string s, string p)
    {
        Queue<string> q = new Queue<string>();
        dist.Add(s, 0);       
        q.Enqueue(s);

        while (q.Count() != 0)
        {
            string j = q.Dequeue();
            foreach (string h in g.adjacentTo(j))
            {
                if (!dist.ContainsKey(h))
                {
                    q.Enqueue(h);
                    dist.Add(h, 1 + dist[j]);
                }

                if (j == p)
                {
                    Console.WriteLine("               " + dist[j]);
                    return;
                }
            }
        }
    }

0 个答案:

没有答案