相关疑难解决方法(0)

DAG中两个节点之间的路径数

我想找到DAG中两个节点之间的路径数.O(V ^ 2)和O(V + E)是可接受的.

O(V + E)提醒我以某种方式使用BFS或DFS,但我不知道如何.有人可以帮忙吗?

algorithm graph-theory

11
推荐指数
2
解决办法
2万
查看次数

拓扑排序以查找到t的路径数

我必须开发一个与拓扑排序相关的O(| V | + | E |)算法,它在有向无环图(DAG)中确定从图的每个顶点到t的路径数(t是一个节点) out-degree 0).我已经开发了DFS的修改如下:

DFS(G,t):
    for each vertex u ? V do
        color(u) = WHITE
        paths_to_t(u) = 0
    for each vertex u ? V do
        if color(u) == WHITE then
            DFS-Visit(u,t)

DFS-Visit(u,t):
    color(u) = GREY
    for each v ? neighbors(u) do
        if v == t then
            paths_to_t(u) = paths_to_t(u) + 1
        else then
            if color(v) == WHITE then
                DFS-Visit(v)
            paths_to_t(u) = paths_to_t(u) + paths_to_t(v)
    color(u) = BLACK
Run Code Online (Sandbox Code Playgroud)

但我不确定这个算法是否与拓扑排序有关,或者我是否应该以另一种观点重构我的工作.

algorithm graph depth-first-search topological-sort

9
推荐指数
1
解决办法
9672
查看次数