【数据结构基础C++】图论04-深度优先遍历,图的连通分量个数

单独写一个连通分量的类

【数据结构基础C++】图论04-深度优先遍历,图的连通分量个数_第1张图片

代码

#pragma once
#include 

using namespace std;

template <typename Graph>
class component {
   
private:
	Graph& G;
	bool* visited;
	int ccount;
	int* connected;

	//将深度优先遍历写在私有里
	void dfs(int v) {
   
		
		visited[v] = true;									//记录该点被访问
		connected[v] = ccount;								//属于同一个连通分量的顶点,连通分量一样
		typename Graph::adjIterator adj(G, v);				//遍历与该顶点相连的边
		for (int it = adj.begin(); !

你可能感兴趣的:(数据结构C++,图论,深度优先,数据结构)