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

Posted Aiden (winner)

tags:

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

采用邻接表存储结构,编写一个算法,判别无向图中任意给定的两个顶点之间是否存在一条长度为为k的简单路径。

[算法描述]

int visited[MAXSIZE]; 
int exist_path_len(ALGraph G,int i,int j,int k)
//判断邻接表方式存储的有向图G的顶点i到j是否存在长度为k的简单路径 
	if(i==j&&k==0)
		return 1; //找到了一条路径,且长度符合要求 
	else if(k>0)
		visited[i]=1; 
		for(p=G.vertices[i].firstarc;p;p=p->nextarc)
			l=p->adjvex; 
			if(!visited[l]) 
			if(exist_path_len(G,l,j,k-1)) 
				return 1; //剩余路径长度减一 
		//for 
		visited[i]=0; //本题允许曾经被访问过的结点出现在另一条路径中 
	//else 
	return 0; //没找到 
//exist_path_len

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

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

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

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

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

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

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