判断图的连通性,用 Python 写其实挺好上手的,尤其是配合 NetworkX 这个库,简直是图论入门的好搭档。课程里的思路也比较清晰,先讲 有向图无向图 是啥,再一步步带你撸 DFSBFS,手把手教你写判断逻辑。

图的遍历方式你应该不陌生,深度优先就是一条路走到黑,广度优先则是按层推进。你可以理解成 DFS 像探险,BFS 像排队办事,各有用途。连通性判断这块,思路其实就两个:图是不是能“一口气”走完所有点;如果不能,它断了。

代码部分挺简洁,用 nx.Graph()nx.DiGraph() 创建图结构,加个几条边,直接调 is_connected()is_strongly_connected() 就能出结果,效率也还不错。适合用来快速验证概念,或者做算法题前的预热。

嗯,还有一点要提醒下:is_connected() 只能用于无向图,有向图得用 is_strongly_connected()。这个区分要记住,不然跑出来结果会让你一脸懵。

如果你已经了解 图的基本结构,也对 DFS/BFS 有点概念,这篇文章可以帮你把抽象的图算法变得更有画面感,还顺便掌握了个好用的库。