图的遍历程序模板--DFS
来源:互联网 发布:python json解析 编辑:程序博客网 时间:2024/06/16 06:16
图的遍历程序模板–DFS
//图的遍历:DFS 和 BFS//DFS 伪代码模板//访问顶点u DFS(u){ vis[u]=true; //设置u已被访问 //访问从u出发可以到达的所有顶点v for(从u出发能到达的所有顶点v) { //如果v未被访问 if( vis[v] == false ) { //递归访问v DFS(v); } }}//遍历图G DFS_traverse(G){ //对G的所有顶点u for(G的所有顶点u) { //如果u未被访问 if( vis[u] == false ) { //访问u所在的连通块 DFS(u); } }}//以下是具体实现模板://邻接矩阵版const int MAXV =1000; //最大顶点数const int INF=1000000000; //设INF为一个很大的数//n为顶点数,MAXV为最大顶点数 int n,G[MAXV][MAXV];//如果顶点i已被访问,则vis[i]=true.初值为falsebool vis[MAXV]={false};//u为当前访问的顶点标号,depth为深度 void DFS(int u,depth) { //设置u已被访问 vis[u]=true; //如果需要对u进行一些操作,可以在这里进行 //下面对所有从u出发能到达的分支顶点进行枚举 //对每个顶点v for(int v=0;v<n;v++) { //如果v未被访问,且u可以到达v if( vis[v] == false && G[u][v]!=INF ) { //访问v,深度加1 DFS(v,depth+1); } }}//遍历图G void DFS_traverse() { //对每个顶点u for(int u=0;u<n;u++) { //如果u未被访问 if( vis[u] == false ) { //访问u和u所在的连同块,1表示初始为第1层 DFS(u,1); } }}//邻接表版 const int MAXV =1000; //最大顶点数const int INF=1000000000; //设INF为一个很大的数//图G的邻接表 vector<int> adj[MAXV];//n为顶点数,MAXV为最大顶点数int n;//如果顶点i已被访问,则 vis[i]=true.初值为falsebool vis[MAXV]={false};void DFS(int u,int depth) { //设置u已被访问 vis[u]=true; //如果需要对u进行一些操作,可以在此处进行 for(int i=0;i<adj[u].size();i++ ) { int v=adj[u][i]; //如果v未被访问 if(vis[v] == false ) { //访问v,深度加1 DFS(v,depth+1); } }}//遍历图G void DFS_traverse() { for(int u=0;u<n;u++) { if(vis[u] == false ) { //访问u和u所在的连通块,1表示初始为第1层 DFS(u,1); } }}
阅读全文
0 0
- 图的遍历程序模板--DFS
- bfs,dfs遍历图的模板
- 图的遍历程序模板–BFS
- 图的遍历-DFS
- 图的遍历DFS
- 图的遍历(DFS)
- 图的dfs遍历和bfs遍历
- 1419 图的DFS遍历
- 图的遍历(DFS)
- 图的遍历:DFS BFS
- 图的深度遍历(DFS)
- 图的深度遍历(DFS)
- 图的遍历算法-DFS
- 图的深度遍历(DFS)
- 图的遍历DFS【邻接矩阵】
- 图的遍历(DFS&BFS)
- 图的深度遍历(dfs)
- 图的遍历-邻接矩阵-dfs
- 我和我老婆的年度阅读清单
- 音乐播放上一首暂停下一首进度条
- 图、遍历(邻接矩阵)
- UVA11059 Maximum Product(暴力)
- Codeforces 890 D. Boxes And Balls (哈夫曼)
- 图的遍历程序模板--DFS
- 编程计算自然数的立方和,直到立方和大于等于1000000时为止。(统计并输出实际累加的项数)
- git
- ImageLoader displayer显示....
- Linkcode 97. 二叉树的最大深度
- 空间索引-GEOHash算法
- 黑马商城项目_导航部分
- Java中的基础----堆与栈的介绍、区别
- 浅谈ArrayList