博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
dfs, bfs之邻接矩阵无向图
阅读量:4156 次
发布时间:2019-05-26

本文共 1924 字,大约阅读时间需要 6 分钟。

dfs, bfs之邻接矩阵无向图

标签:dfs bfs


#include 
#include
using namespace std;#define maxn 20int graph[maxn][maxn], visited[maxn];int vertex, edges;void creat(int graph[maxn][maxn]){ //建立图的邻接矩阵 freopen("g11.txt", "r", stdin); int from, to; scanf("%d %d", &vertex, &edges); for(int i = 0; i < edges; i++){ scanf("%d %d", &from, &to); graph[from][to] = 1; graph[to][from] = 1; //无向图 }}void print(int graph[maxn][maxn]){ //打印图 for(int i = 0; i < vertex; i++){ printf("%d", graph[i][0]); for(int j = 1; j < vertex; j++) printf(" %d", graph[i][j]); printf("\n"); } for(int i = 0; i < vertex; i++){ printf("%d", i); for(int j = 0; j < vertex; j++){ if(graph[i][j]) printf("-->%d", j); } printf("\n"); }}void dfs(int graph[maxn][maxn], int i){ visited[i] = 1; printf("%d", i); for(int j = 0; j < vertex; j++) if(graph[i][j] && !visited[j]) dfs(graph, j);}void DfsTraverse(int graph[maxn][maxn]){ //dfs for(int i = 0; i < vertex; i++) visited[i] = 0; for(int i = 0; i < vertex; i++) if (!visited[i]) dfs(graph, i);}queue
q;void bfs(int graph[maxn][maxn], int i){ visited[i] = 1; printf("%d", i); q.push(i); while(!q.empty()){ int initial = q.front(); q.pop(); for(int j = initial; j < vertex; j++) if(graph[i][j] && !visited[j]){ visited[j] = 1; printf("%d", j); q.push(j); } }}void BfsTraverse(int graph[maxn][maxn]){ //bfs for(int i = 0; i < vertex; i++) visited[i] = 0; for(int i = 0; i < vertex; i++) if(!visited[i]) bfs(graph, i);}int main(){ creat(graph); printf("The graph is:\n"); print(graph); printf("\n"); DfsTraverse(graph); printf("\n"); BfsTraverse(graph); printf("\n"); return 0;}

数据文件

file
输出结果
graph

你可能感兴趣的文章
springmvc传值
查看>>
在Eclipse中查看Android源码
查看>>
Android使用webservice客户端实例
查看>>
[转]C语言printf
查看>>
C 语言 学习---ComboBox相关、简易“假”管理系统
查看>>
C 语言 学习---回调、时间定时更新程序
查看>>
第十一章 - 直接内存
查看>>
一篇搞懂Java反射机制
查看>>
Single Number II --出现一次的数(重)
查看>>
对话周鸿袆:从程序员创业谈起
查看>>
Mysql中下划线问题
查看>>
Xcode 11 报错,提示libstdc++.6 缺失,解决方案
查看>>
Windows mysql 安装
查看>>
python循环语句与C语言的区别
查看>>
vue项目打包后无法运行报错空白页面
查看>>
Vue 解决部署到服务器后或者build之后Element UI图标不显示问题(404错误)
查看>>
element-ui全局自定义主题
查看>>
facebook库runtime.js
查看>>
js报错显示subString/subStr is not a function
查看>>
高德地图js API实现鼠标悬浮于点标记时弹出信息窗体显示详情,点击点标记放大地图操作
查看>>