第十二周项目四-利用遍历思想求解图问题(5)
来源:互联网 发布:怎么看淘宝卖家的电话 编辑:程序博客网 时间:2024/06/04 19:00
5、输出通过一个节点的所有简单回路
问题:求图中通过某顶点k的所有简单回路(若存在)
测试图如下:
main.cpp
#include <stdio.h>#include <malloc.h>#include "graph.h"int visited[MAXV]; //全局变量void DFSPath(ALGraph *G,int u,int v,int path[],int d)//d是到当前为止已走过的路径长度,调用时初值为-1{ int w,i; ArcNode *p; visited[u]=1; d++; path[d]=u; p=G->adjlist[u].firstarc; //p指向顶点u的第一条边 while (p!=NULL) { w=p->adjvex; //w为顶点u的相邻点 if (w==v && d>0) //找到一个回路,输出之 { printf(" "); for (i=0; i<=d; i++) printf("%d ",path[i]); printf("%d \n",v); } if (visited[w]==0) //w未访问,则递归访问之 DFSPath(G,w,v,path,d); p=p->nextarc; //找u的下一个邻接顶点 } visited[u]=0; //恢复环境:使该顶点可重新使用}void FindCyclePath(ALGraph *G,int k)//输出经过顶点k的所有回路{ int path[MAXV],i; for (i=0; i<G->n; i++) visited[i]=0; //访问标志数组初始化 printf("经过顶点%d的所有回路\n",k); DFSPath(G,k,k,path,-1); printf("\n");}int main(){ ALGraph *G; int A[5][5]= { {0,1,1,0,0}, {0,0,1,0,0}, {0,0,0,1,1}, {0,0,0,0,1}, {1,0,0,0,0} }; //请画出对应的有向图 ArrayToList(A[0], 5, G); FindCyclePath(G, 0); return 0;}
运行结果:
0 0
- 第十二周项目四 利用遍历思想求解图问题
- 第十二周【项目四-利用遍历思想求解图问题】
- 第十二周 项目四(5) 利用遍历思想求解图问题
- 第十二周-项目四 利用遍历思想求解图问题(5)
- 第十二周项目四 利用遍历思想求解图问题(5)
- 第十二周项目四-利用遍历思想求解图问题(5)
- 第十二周【项目四-利用遍历思想求解图问题(1-5)】
- 第十二周项目四【利用遍历思想求解问题】
- 第十二周--图--项目四利用遍历思想求解图问题(7)
- 第十二周 项目四(1) 利用遍历思想求解图问题
- 第十二周 项目四(2) 利用遍历思想求解图问题
- 第十二周 项目四(3) 利用遍历思想求解图问题
- 第十二周 项目四(4) 利用遍历思想求解图问题
- 第十二周 项目四(6) 利用遍历思想求解图问题
- 第十二周 项目四(7) 利用遍历思想求解图问题
- 第十二周 项目四 (2) 利用遍历思想求解图问题
- 第十二周-项目四 利用遍历思想求解图问题(2)
- 第十二周-项目四 利用遍历思想求解图问题(6)
- Spring执行mongoDB存储过程
- 数据库集群-Mysql-mysql-cluster 安装
- 聊一聊Webstorm下的angular2.0数据显示问题
- iOS block代码块
- 大数据是什么 2013
- 第十二周项目四-利用遍历思想求解图问题(5)
- 从HTTP到MQTT:一个移动后端案例概述
- 第十三周 项目4 -Floyd算法的验证
- 兼容Ie的获取窗口可用部分高度
- unity3D-游戏/AR/VR在线就业班 C#入门枚举类型学习笔记
- @RequestParam @RequestBody @PathVariable 等参数绑定注解详解
- 解决Android studio 不能使用ArrayMap
- 过去的自己,我要对你说这些
- MSComm串口类的使用 (程序设计)