///'#include //n#include //n#include //n#include //nusing namespace std;//n//n// 图的邻接表表示//nclass Graph {//nprivate://n int V; // 顶点数//n vector<vector> adj; // 邻接表//n//npublic://n Graph(int V) {//n this->V = V;//n adj.resize(V);//n }//n//n void addEdge(int u, int v) {//n adj[u].push_back(v);//n adj[v].push_back(u);//n }//n//n // BFS遍历,返回最短路径长度//n int BFS(int src, int dest) {//n vector visited(V, false);//n vector dist(V, 0);//n queue q;//n//n visited[src] = true;//n q.push(src);//n//n while (!q.empty()) {//n int u = q.front();//n q.pop();//n//n for (int v : adj[u]) {//n if (!visited[v]) {//n visited[v] = true;//n dist[v] = dist[u] + 1;//n q.push(v);//n }//n }//n }//n//n return dist[dest];//n }//n//n // 寻找最长路径//n int findLongestPath() {//n int longestPath = 0;//n//n // 遍历每个顶点,计算到其他连通块的最短路径,取最大值//n for (int i = 0; i < V; i++) {//n for (int j = i + 1; j < V; j++) {//n // 如果i和j不在同一个连通块中//n if (!isConnected(i, j)) {//n int shortestPath = BFS(i, j);//n longestPath = max(longestPath, shortestPath);//n }//n }//n }//n//n return longestPath;//n }//n//n // 判断两个顶点是否在同一个连通块中//n bool isConnected(int u, int v) {//n vector visited(V, false);//n DFS(u, visited);//n return visited[v];//n }//n//n // DFS遍历//n void DFS(int v, vector& visited) {//n visited[v] = true;//n for (int u : adj[v]) {//n if (!visited[u]) {//n DFS(u, visited);//n }//n }//n }//n};//n//nint main() {//n int V = 6;//n Graph g(V);//n//n // 添加边//n g.addEdge(0, 1);//n g.addEdge(1, 2);//n g.addEdge(2, 3);//n g.addEdge(4, 5);//n//n int longestPath = g.findLongestPath();//n cout << ///'最长路径长度: ///' << longestPath << endl;//n//n return 0;//n}//n/