DFS寻找从s到t的所有路径

问题描述:

输入一个有向图,输出从s到t的所有路径的结点

输入:
3 3
0 1
1 2
0 2
输出:

0 1 2

0  2

代码:

#include
using namespace std;

const int N = 103;
vectore[N];//用行为N的,列为可变长度的二维数组表示邻接表 
bool vis[N];//定义访问标记数组 
int path[N],cnt;//path用于记录路径,cnt用于记录路径长度(cnt初值为0,全局变量默认为0)
int n,m;//n为结点数,m为边数 

void dfs(int s,int t){//找到从s到t的所有路径
	vis[s] = 1;//第一件事永远都是把当前结点置为已访问
	path[cnt++] = s;//把当前结点加入路径中 
	if(s==t){//如果找到一条从s到t的路径
		for(int i=0;i

你可能感兴趣的:(图,深度优先,算法,图论)