深度优先搜索DFS——图邻接矩阵表示
2012-10-07 12:44
495 查看
同样的DFS,这个是用邻接矩阵保存的图,或许应用没有那么广,要浪费较多的空间,但是还是有必要实现一下的,和之前那个算法的思想是一样的,只是变换了存储结构。
/* 图邻接矩阵表示DFS input: 1 7 A 0 0 0 0 1 0 0 B 0 0 1 1 0 0 0 C 0 1 0 1 0 0 0 D 0 1 0 0 1 1 0 E 1 0 0 1 0 0 1 F 0 0 0 1 0 0 0 G 0 0 0 0 1 0 0 output: A E D B C F G */ #include<iostream> #include<cstring> using namespace std; struct Graph{ //图邻接矩阵表示 char data; bool *adjacency; }; void Create(Graph G[],int n){ //创建图邻接矩阵表示 int i,j; for(i=1; i<=n; i++){ cin>>G[i].data; G[i].adjacency = new bool ; for(j=1; j<=n; j++)cin>>G[i].adjacency[j]; } } void DFS(Graph G[],int vex,int n,bool visited[]){ //DFS图邻接矩阵表示 if(!visited[vex]){ visited[vex] = true; cout<<G[vex].data<<' '; int i; for(i=1; i<=n; i++){ if(G[vex].adjacency[i] && !visited[i])DFS(G,i,n,visited); } } } int main(){ Graph *G; bool *visited; int t,n; cin>>t; while(t--){ cin>>n; G = new Graph ; visited = new bool ; memset(visited,0,sizeof(visited)); Create(G,n); DFS(G,1,n,visited); cout<<endl; } return 0; }
相关文章推荐
- 深度优先搜索 DFS(邻接矩阵表示)
- 深度优先搜索DFS——图邻接表表示
- 深度优先搜索遍历(DFS)——邻接矩阵存储
- 22.基于 邻接表 表示的 深度优先搜索dfs 和 广度优先搜索bfs
- Java实现图:邻接矩阵表示、深度优先搜索、广度优先搜索、无向图的最小生成树
- DFS--深度优先搜索--图的邻接表表示
- 基于邻接矩阵实现的DFS深度优先搜索
- DFS--深度优先搜索--图的邻接表表示
- DFS--深度优先搜索--图的邻接矩阵
- DFS--深度优先搜索--图的邻接矩阵
- Java实现数据结构之深度优先搜索DFS和广度优先搜索BFS
- 数据结构--图--图的数组存储表示,深度优先搜索遍历和广度优先搜索遍历
- poj1088 滑雪 dp记忆化搜索 dfs深度优先搜索
- 深度优先搜索DFS
- 深度优先搜索DFS:八皇后问题(去掉不能再一条斜线上的条件) C++
- DFS深度优先搜索遍历
- 深度优先搜索DFS
- 无向图的邻接矩阵 -- DFS - 深度优先遍历
- HDU/HDOJ 1241 Oil Deposits (DFS)深度优先搜索
- DFS深度优先搜索