给定一张无向图,图中的每个节点用一个整数编号,且图通过邻接表存储。请你计算该图中有多少个连通块。我们定义一个连通块是一个图的最大子图,在这个子图中任意两个节点都有路径相连。换句话说,连通块是一个连通的无向图的部分,其中任意两个节点通过一系列边相互连接。
深度优先遍历(DFS)是一种经典的图遍历算法。通过该算法,我们可以遍历一个图的所有节点,并将连通的节点标记为已访问。以下是 DFS 的基本实现:
visited = [False] * (MAX) # 访问标记数组
# DFS 函数(递归实现)