图的BFS和DFS在数据结构为邻接矩阵时的实现
来源:互联网 发布:唐门捏脸数据 编辑:程序博客网 时间:2024/06/05 20:30
#include <iostream>#include <queue>using namespace std;//因为只是为了练习DFS和BFS 数据结构定义的很随意 没有优化类啦 能用就行 class Graph{private: static const int MAX=100;int weight[MAX][MAX];//任意一个图最大节点数为MA int nodes;int vertexs;bool *isVisited;public:void init(int n,int v);//init相当于构造函数的功能 ~Graph(){ delete []isVisited;} void SearchBfs(int node);void SearchDfs(int node); void visit (int n) { cout<<"->"<<n; }};void Graph::init (int n,int v)//先后以节点数和边数为形参 { vertexs=v;//节点数和边数初始化 nodes=n; for(int i=0;i!=n;i++) for(int j=0;j!=n;j++) { weight[i][j]=0; } int i=0,j=0,weight_=0; for(int h=0;h!=v;h++) { cout<<" vertex origin to vertex destition and weight "<<endl; cin>>i>>j>>weight_; weight[i][j]=weight_; } isVisited=new bool[nodes];//记录节点是否被遍历 for(int w=0;w!=nodes;) isVisited[w++]=false;}void Graph::SearchDfs(int node){ visit(node); isVisited[node]=true;for(int i=0;i!=nodes;i++) { if(weight[node][i]!=0&&isVisited[i]==false) SearchDfs(i); }}void Graph::SearchBfs(int node){queue<int>myQueue;myQueue.push(node);visit(node);isVisited[node]=true;while(!myQueue.empty()){ int v=myQueue.front(); myQueue.pop();for(int i=0;i!=nodes;i++) { if(weight[v][i]!=0&&isVisited[i]==false) { visit(i); isVisited[i]=true; myQueue.push(i); } } } }int main(){Graph myGraph;myGraph.init(9,8);//myGraph.SearchBfs(0);myGraph.SearchDfs(0);}
0 0
- 图的BFS和DFS在数据结构为邻接矩阵时的实现
- 数据结构 邻接矩阵的BFS DFS
- 图的邻接矩阵表示 DFS 和BFS C++实现
- C语言实现图的邻接矩阵和BFS DFS
- 有向图的DFS和BFS(邻接矩阵实现)
- 邻接矩阵图的dfs和bfs
- 在邻接矩阵中的DFS与BFS的实现
- [数据结构]图基于邻接矩阵的BFS与DFS的C语言简单实现
- 邻接矩阵的DFS 和 BFS 搜索遍历
- 邻接矩阵实现图的存储,DFS,BFS遍历
- java版 图的邻接表、邻接矩阵、BFS、DFS 实现
- 图的遍历(BFS、DFS的邻接矩阵和邻接表实现)
- 邻接矩阵实现--图的深度优先遍历DFS和广度优先遍历BFS
- 图的邻接矩阵表示(DFS,BFS)
- 复习(数据结构):图:c语言:邻接矩阵DFS和BFS
- 【数据结构】Java实现图的DFS和BFS
- 数据结构实验3(图的DFS和BFS实现)
- 《大话数据结构》图的BFS和DFS
- 通过URL地址webRequest.GetResponse()访问页面不能调试&签核权限
- 敌兵布阵--初识线段树
- HTML Meta中添加X-UA-Compatible和IE=Edge
- 简单的shell脚本实例入门
- 5月8号到5月22号之间计划
- 图的BFS和DFS在数据结构为邻接矩阵时的实现
- sourceinsight 批量注释
- 达梦DCI
- Here Are 8 Of The Top Open Source Full-Text Search Engines!
- 栈的实现
- 运用Ext JS 4的MVC架构
- 函数调用方式__stdecl _stdcall _fastcall __thiscall介绍
- 变量和运算符
- FLV视频封装格式详解