C语言:输出图G中从顶点u到v的所有简单路径算法-创新互联

题目

成都创新互联是专业的广宗网站建设公司,广宗接单;提供网站制作、网站设计,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行广宗网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

假设图 G 采用邻接表存储,设计一个算法,输出图 G 中从顶点 u 到v 的
所有简单路径。

分析

采用深度优先遍历的方法,在 DFS 算法的基础上改为 G、u、v、path 和d 共5 个形参, 其中 path 数组存放路径(初始为空),d 表示路径长度(初始为-1),查找从顶点 u 到v 的所有简单路径过程如图所示。
在这里插入图片描述
代码

void FindPath(AGraph *G,int u,int v,int path[],int d)
//d 是到当前为止已走过的路径长度,调用时初值为-1
{int w,i;
	ArcNode *p;
	d++; //路径长度增 1
	path[d] =u; //将当前顶点添加到路径中
	visited[u] =1; //置已访问标记
	if (u == v) //找到一条路径则输出
		printf("%2d" , path[i]); //输出路径
	p=G->adjlist[u].firstarc; //p 指向 v 的第一个相邻点
	while (p!=NULL)
	{w=p->adjvex; //w 为顶点 u 的相邻顶点
		if(visited[w]==0) //若 w 顶点未访问,递归访问它
			FindPath(G, w,v , path, d);
		p=p->nextarc; //p 指向 v 的下一个相邻点
	}
	visited[u]=0; /恢复环境,使该顶点可重新使用
}

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


文章名称:C语言:输出图G中从顶点u到v的所有简单路径算法-创新互联
分享地址:http://azwzsj.com/article/dooigi.html