(12.18)无向图的深度搜索(邻接矩阵)
来源:互联网 发布:联合国统计数据库 编辑:程序博客网 时间:2024/05/22 00:29
深度搜索:DFS,就是从其中一个顶点v开始,,访问顶点,然后,从v开始往一个方向搜索,直到遇到的下一个搜索目标是已经搜索过的,然后返回上一个结点,判断有没有结点是没有被搜索过的,若没有,继续返回上一层,直到所有的都被访问完。
先用邻接矩阵写一遍
贴下代码:
#include<iostream>
usingnamespacestd;
constintvertex_max= 20;//初始设定顶点的最大值为20
structGraph
{
charvertex[vertex_max]; //建立顶点表
intarc[vertex_max][vertex_max]; //邻接矩阵
intvertexnum, arcnum; //顶点个数,边个数
};
voidCreatGraph(Graph&G)
{
inti, j , k ,w; //w是权值
cout<<"请输入顶点个数和边的个数:"<<endl;
cin>>G.vertexnum>>G.arcnum;
cout<<"请依次输入顶点的信息:"<<endl;
for(i= 0 ;i <G.vertexnum ;i ++)
cin>>G.vertex[i];
for(i= 0 ;i <G.vertexnum ; i++) //初始化邻接矩阵
for(j =0 ; j < G.vertexnum ; j++)
{
if(i== j)
G.arc[i][j]= 0;
else
G.arc[i][j]= INT_MAX;
}
cout<<"请输入边(Vi,Vj)的下标i,j和权值:"<<endl;
cout<<endl;
cout<<" i j weight " <<endl;
for(k= 0 ;k <G.arcnum ;k ++)
{
cout<<"请输入第"<<k+1<<"条边的信息:";
cin>>i>>j>>w;
G.arc[i][j]= w;
G.arc[j][i]= G.arc[j][i];
}
cout<<"creatsuccessful!"<<endl;
}
boolvisted[vertex_max]; //访问标志的数组
voidDFS(GraphG,inti)
{
intj;
visted[i]= true;
cout<<G.vertex[i]<<" " ;
for(j= 0 ;j <G.vertexnum ;j++)
{
if(G.arc[i][j]== 1&&!visted[j])
DFS(G,j);
}
}
voidDFSTraverse(GraphG)
{
inti;
for(i= 0 ;i< G.vertexnum ;i ++)
visted[i]= false; //初始化所有结点都为未访问状态
for(i= 0 ;i <G.vertexnum ; i++)
{
if(!visted[i])
DFS(G,i);
}
}
intmain()
{
Graph G;
CreatGraph(G);
cout<<"DFS遍历此无向图:"<<endl;
DFSTraverse(G);
cout<<endl;
}
usingnamespacestd;
constintvertex_max= 20;
structGraph
{
};
voidCreatGraph(Graph&G)
{
}
boolvisted[vertex_max];
voidDFS(GraphG,inti)
{
}
voidDFSTraverse(GraphG)
{
}
intmain()
{
}
- (12.18)无向图的深度搜索(邻接矩阵)
- 深度优先生成树(无向图,邻接矩阵,DFS)
- 邻接矩阵(无向图)
- 基于邻接矩阵的无向图构造,以及宽度优先、深度优先搜索(Java)
- 图的深度优先搜索(邻接矩阵)
- 【数据结构】邻接矩阵的深度与广度遍历(无向图)
- 无向图的深度优先搜索(最终版)
- Java实现图:邻接矩阵表示、深度优先搜索、广度优先搜索、无向图的最小生成树
- 无向图的邻接矩阵 -- DFS - 深度优先遍历
- 无向图邻接矩阵的储存和深度优先遍历
- 无权图无向图【邻接矩阵存储】深度搜索和广度搜索--Java实现
- 邻接矩阵遍历(无向图,邻接矩阵,DFS,BFS)
- 无向图(邻接矩阵)度序列
- 无向图的邻接矩阵
- 无向图的深度优先搜索
- 无向图的深度优先搜索
- 无向图的深度优先搜索
- 无向图的深度优先搜索
- poj 2255 Tree Recovery(做为二叉树的练笔挺不错的)
- java设计模式(一):动态代理
- (12.15)图的邻接矩阵实现
- 赐除掉某一字符串中连续重复的字符序列
- (12.16)图的邻接表表示
- (12.18)无向图的深度搜索(邻接矩阵)
- 用g++编写一个hello,world
- O(n)时间求最接近中位数的k个数
- 后台coder的神器!Bootstrap && Layoutit
- DP之最基本的求最长公共子序列
- DP之简单的求最大字段和问题
- 0-1背包问题
- 简单DP之最少硬币问题(多重背包问…
- DP之一般背包问题