第12周项目4 - 利用遍历思想求解图问题(2)
来源:互联网 发布:validform.js ajaxurl 编辑:程序博客网 时间:2024/06/03 20:00
/* * Copyright (c)2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名称:main.cpp * 作 者:李良涵 * 完成日期:2016年12月15日 * 版 本 号:v1.0 * 假设图G采用邻接表存储,设计一个算法输出图G中从顶点u到v的一条简单路径(假设图G中从顶点u到v至少有一条简单路径)。 */ #include <stdio.h> #include <malloc.h> #include "graph.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; }
运行结果:
心得体会:
遍历输出简单路径
0 0
- 第12周项目4 - 利用遍历思想求解图问题(2)
- 第12周上机实践项目4 - 利用遍历思想求解图问题(1-4)
- 第12周项目4 - 利用遍历思想求解图问题(4)
- 第12周项目4利用遍历思想求解图问题2
- 第12周上机实践项目4 - 利用遍历思想求解图问题(5-7)
- 第12周项目4利用遍历思想求解图问题(1-5)
- 第12周 项目4 - 利用遍历思想求解图问题 (1-5)
- 第12周 项目4 - 利用遍历思想求解图问题 (6-7)
- 第12周项目4-利用遍历思想求解图问题(1-5)
- 第12周项目4-利用遍历思想求解图问题(6-7)
- 第12周项目4-利用遍历思想求解图问题(1-5)
- 第12周项目4-利用遍历思想求解图问题(6-7)
- 第12周项目4 - 利用遍历思想求解图问题(1)
- 第12周项目4 - 利用遍历思想求解图问题(3)
- 第12周项目4 - 利用遍历思想求解图问题(5)
- 第12周项目4 - 利用遍历思想求解图问题(6)
- 第12周项目4 - 利用遍历思想求解图问题(7)
- 第12周、项目4 ㈠—利用遍历思想求解图问题
- oracle安装手册
- http学习笔记(三)
- 1036. 跟奥巴马一起编程(15)
- Python 提交表单数的一点简单介绍How to submit a web form
- 电子商务专业
- 第12周项目4 - 利用遍历思想求解图问题(2)
- JSP EL详解
- iOS 个别页面强制横屏,其他页面竖屏
- ffmpeg so
- maven学习
- css如何选择同一个class下的第一个div?
- 简单分析教您如何提高淘宝店铺DSR评分?
- php+ mysql+coreseek建立中文搜索引擎
- JavaScript jQuery实现Tetris(俄罗斯方块)游戏代码