当前位置:   article > 正文

图的深度优先遍历与广度优先遍历_、给出如下图g:以顶点1为根,分别写出g的深度优先和广度优先遍历的序列。

、给出如下图g:以顶点1为根,分别写出g的深度优先和广度优先遍历的序列。

**

图的深度优先遍历与广度优先遍历

**
题目:
给出一个无向图顶点和边的信息,输出这个无向图的深度优先遍历序列和广度优先遍历序列。从一个顶点出发如果有2个以上的顶点可以访问时,我们约定先访问编号大的那个顶点。示例输入对应的图如下图所示:

输入
输入的第1行有2个整数m和n。表示图g有m个顶点和n条边。
第2行是m个以空格隔开的字符串,依次是图中第1个顶点的名字,第2个顶点的名字…第m个顶点的名字。
此后还有n行,每行由2个字符串构成,分别是构成图中1条边的两个顶点。我们约定不会有重边。
输出
输出有2行。
第1行是从第1个顶点出发对图g做深度优先遍历得到的顶点序列。
第2行是从第1个顶点出发对图g做广度优先遍历得到的顶点序列。
样例输入

8 9
v1 v2 v3 v4 v5 v6 v7 v8
v1 v2
v1 v3
v1 v6
v2 v3
v2 v4
v3 v4
v4 v6
v5 v6
v7 v8
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

样例输出

v1 v6 v5 v4 v3 v2 v7 v8
v1 v6 v3 v2 v5 v4 v7 v8
  • 1
  • 2

代码:

#include<bits/stdc++.h>
using namespace std;
int mapp[1000][1000],a[1000],book[1000],path[1000];
int m,n,idx;
void dfs(int x){
   
	if(book[x]){
   
		return;
	}
	book[x]=1;
	path[++idx]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/596600
推荐阅读
相关标签
  

闽ICP备14008679号