第12周项目4(2)输出简单路径
2015-12-14 17:00
239 查看
函数:
函数实现:
#include <stdio.h> #include <malloc.h> #include "1.h" int visited[MAXV]; //定义存放节点的访问标志的全局数组 void FindAPath(ALGraph *G,int u,int v,int path[],int d) { //d表示path中的路径长度,初始为-1 int w,i; ArcNode *p; visited[u]=1; d++; path[d]=u; //路径长度d增1,顶点u加入到路径中 if (u==v) //找到一条路径后输出并返回 { printf("一条简单路径为:"); for (i=0; i<=d; i++) printf("%d ",path[i]); printf("\n"); return; //找到一条路径后返回 } p=G->adjlist[u].firstarc; //p指向顶点u的第一个相邻点 while (p!=NULL) { w=p->adjvex; //相邻点的编号为w if (visited[w]==0) FindAPath(G,w,v,path,d); p=p->nextarc; //p指向顶点u的下一个相邻点 } } void APath(ALGraph *G,int u,int v) { int i; int path[MAXV]; for (i=0; i<G->n; i++) visited[i]=0; //访问标志数组初始化 FindAPath(G,u,v,path,-1); //d初值为-1,调用时d++,即变成了0 } int main() { ALGraph *G; int A[5][5]= { {0,0,0,0,0}, {0,0,1,0,0}, {0,0,0,1,1}, {0,0,0,0,0}, {1,0,0,1,0}, }; //请画出对应的有向图 ArrayToList(A[0], 5, G); APath(G, 1, 0); APath(G, 4, 1); return 0; }
函数实现:
相关文章推荐
- 第十二周 项目1 图基本算法库
- 第十五周 项目1 堆排序
- 第十六周 项目1.4——验证算法
- 第8周项目1 建立顺序串的算法库
- 第16周实践项目-基数排序
- springmvc url 路径映射
- 最近正在看c++一些容器,这篇总结的不错,分享
- jquery.cookie 使用方法
- 不错
- Win7远程桌面连接不上问题解决方案
- 民意调查Django实现(三)
- Canvas随笔(一)
- java基础之 多态
- 第十六周项目-基数排序
- 黑马程序员---Java基础---String类
- 第十五周项目10—归并排序算法的改进
- 从头认识java-13.7 什么时候使用泛型?
- 探究JavaScript函数式编程的乐趣
- 第十六周项目5直接选择排序
- 第16周—项目1(7)归并排序