求无向图中的连通分量的个数

输入

第一行有两个整数n,m 

n表示有n个点;m表示接下来有m行数据

接下来m行,每行都有两个整数a,b,表示a,b之间有路径

输出

输出无向图中的连通分量的个数

代码

import java.util.LinkedList;
import java.util.Scanner;
public class Main {
    static int n;
    static int m;
    static LinkedList adj[];//邻接链表
    static Scanner cin = new Scanner(System.in);
    public static void main(String[] args) {
        n=cin.nextInt();
        m=cin.nextInt();
        Graph G=new Graph();//邻接链表表示的无向图
        CC cc=new CC(G);//求无向图中的连通分量
        System.out.println(cc.getCount());
        cin.close();
    }
    private static class Graph {
        int V;//点数
        int E;//边数
        public Graph(){
            this.V=n;
            this.E=m;
            adj=new LinkedList[V+1];
           //表示无向图中的点从1开始到V
            for(int i=1;i();
            }
            for(int i=0;i adj(int v){
            return adj[v];
        }
    }

    private static class CC {
        private boolean marked[];
        private int []id;
        private int count;
        public CC(Graph G) {
            marked=new boolean[G.getV()+1];//默认数组值全为false
            id=new int[G.getV()+1];//默认全为0
            for(int i=1;i

你可能感兴趣的:(求无向图中的连通分量的个数)