数据结构(C语言版) 图 算法设计Demo4

Posted Aiden (winner)

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据结构(C语言版) 图 算法设计Demo4相关的知识,希望对你有一定的参考价值。

试基于图的深度优先搜索策略写一算法,判别以邻接表方式存储的有向图中是否存在由顶点vi到顶点vj的路径(i≠j)。

[题目分析]

引入一变量level来控制递归进行的层数

[算法描述]

int visited[MAXSIZE]; //指示顶点是否在当前路径上 
int level=1;//递归进行的层数
int exist_path_DFS(ALGraph G,int i,int j)//深度优先判断有向图G中顶点i到顶点j 
//是否有路径,是则返回1,否则返回0 
	if(i==j) return 1; //i就是j 
	else 
    visited[i]=1; 
		for(p=G.vertices[i].firstarc;p;p=p->nextarc,level--) 
			level++;
			k=p->adjvex; 
			if(!visited[k]&&exist_path(k,j))
				return 1;//i下游的顶点到j有路径 
		//for 
	//else 
	if (level==1)
		return 0;
//exist_path_DFS

以上是关于数据结构(C语言版) 图 算法设计Demo4的主要内容,如果未能解决你的问题,请参考以下文章

数据结构(C语言版) 查找 算法设计Demo4

数据结构(C语言版) 树和二叉树 算法设计Demo4

数据结构(C语言版) 图 算法设计Demo2

数据结构(C语言版) 图 算法设计Demo3

数据结构(C语言版) 图 算法设计Demo5

数据结构(C语言版) 图 算法设计Demo1