【发布时间】:2014-06-26 03:56:25
【问题描述】:
我手头有一个有趣的问题。我想解决一个从加权图的源顶点开始的问题,并找出所有可能返回它的路径。
例如:考虑上面的有向图:
如果我从 Source=A 开始的预期输出:
1) A -> C -> D -> B-> A
2) A -> B -> A
3) A -> D -> B -> A
注意:
a) 图表将被加权,我在遍历时找到边的总和(不一定是最小总和)。
b) 计划用矩阵来表示图,图在某些地方可能是循环的。
b) 解决这个问题的最有效的代码是什么?我知道 BFS 和 DFS,但他们不计算往返!
当前 DFS 代码:(邻接图)
void dfs(int cost[][20],int v[],int n, int j)
{
int i;
v[j]=1;
printf("Vistiing %d\n",j);
for(i=0;i<n;i++)
if(cost[j][i]==1 && v[i]==0)
dfs(cost,v,n,i
);
}
【问题讨论】: