图的遍历(PTA题目解答)
来源:互联网 发布:csgo残局 知乎 编辑:程序博客网 时间:2024/03/29 16:07
mycode:
#include <iostream>#include <vector>#include <queue>using namespace std;void dfs(vector<vector<int>> a,int i,vector<int> &test,vector<int> &dfs_sub){test[i] = 1;for (int j = 0; j < a[i].size(); j++){if (a[i][j] == 1&& !test[j]){dfs_sub.push_back(j);dfs(a, j,test,dfs_sub);}}return;}int main(int argc, char *argv[]){int n;int e;cin >> n;cin >> e;vector<vector<int> > res(n,vector<int>(n,0));vector<vector<int> > dfs_num;vector<int> dfs_sub;int count = 0;while (count < e){int a, b;cin >> a;cin >> b;res[a][b] = 1;res[b][a] = 1;count++;}//dfsvector<int> test(n, 0);for (int i = 0; i < n; i++){if (!test[i]){dfs_sub.push_back(i);dfs(res, i,test,dfs_sub);dfs_num.push_back(dfs_sub);dfs_sub.clear();}}for (int i = 0; i < dfs_num.size(); i++){cout << "{ ";for (int j = 0; j < dfs_num[i].size(); j++){cout << dfs_num[i][j] << " ";}cout << "}"<<endl;}//bfsvector<int> test_bfs(n,0);queue<int> bfs_que;vector<vector<int> > bfs_num;vector<int> bfs_sub;for (int i = 0; i < n; i++){if (!test_bfs[i]){bfs_sub.push_back(i);test_bfs[i] = 1;bfs_que.push(i);while (!bfs_que.empty()){int m = bfs_que.front();bfs_que.pop();for (int j = 0; j < res[m].size(); j++){if (res[m][j] == 1 && !test_bfs[j]){test_bfs[j] = 1;bfs_sub.push_back(j);bfs_que.push(j);}}}bfs_num.push_back(bfs_sub);bfs_sub.clear();}}for (int i = 0; i < bfs_num.size(); i++){cout << "{ ";for (int j = 0; j < bfs_num[i].size(); j++){cout << bfs_num[i][j] << " ";}cout << "}";cout << endl;}return 0;}
0 0
- 图的遍历(PTA题目解答)
- PTA数据结构与算法题目集(中文)4-9 二叉树的遍历 (25分)
- PTA邻接表存储图的广度优先遍历(20 分)
- pta 9 目录树 (30分) (树的遍历)
- pta 是否完全二叉搜索树 (树的遍历)
- 一道题目的解答
- PTA 4-3 二叉树的遍历
- PTA乙级训练题1001-1012解答(C语言)
- PTA-树的遍历(后中推先,层序遍历)
- PTA-基础编程题目-5-35有理数的均值(c)
- PTA 数据结构与算法题目集(中文)5-3 树的同构 (25分)
- csdn题目(含解答)
- codeup 题目解答(结构体的使用)
- PTA 6-2 二叉树的遍历(25 分) 25分代码 (数组实现层次遍历)
- PTA 链表删除结点的题目测试
- 题目解答
- PTA的6-10 二叉树的遍历
- 【PTA 5-10 树的遍历 (25分)】+ 二叉树
- 高效程序员的狂暴之路
- 架构设计:系统间通信(1)——概述从“聊天”开始上篇
- github-july-回文判断
- Hashmap实现原理
- keil 5.16a使用
- 图的遍历(PTA题目解答)
- Servlet 工作原理解析
- mac装机
- NSTimer与NSRunLoop
- Java接口实验,计算矩形和圆的周长和面积
- 2010 Asia Regional Tianjin Site —— Online Contest (线段树二维转一维,2-SAT,floyed变形)hdu3621-3631
- android学习笔记(18)数据库sqlite初步
- Http协议详解2
- POJ 1860 Currency Exchange