图的遍历,BFS中入队前忘了判断是否已入队,导致无限入队,直到内存超限,调试时会直接跳过这段代码,然后就卡住不动,找这个错误花了很长时间。。。。
#include <cstdio>
#include <vector>
#include <queue>
using namespace std;
int N;
vector<vector<int> > graph;
//返回图有几个连通分量
int BFS();
//计算n号顶点的最大深度
int depthCal(int n);
//当前访问的是v,深度dep,比较判断是否更新max_dep
void DFS(int v, int dep, int &max_dep, bool vis[]);
bool isLeaf(int v, bool vis[]);
int main(){
scanf("%d", &N);
graph.resize(N+1);
int depth[N+1];
int l = N-1;
while(l--){
int v1, v2;