遍历完所有的边而不能有重复,即所谓「一笔画问题」或「欧拉路径」;
遍历完所有的顶点而没有重复,即所谓「哈密顿路径问题」。
遍历完所有的边而可以有重复,即所谓「中国邮递员问题」;
遍历完所有的顶点而可以重复,即所谓「旅行推销员问题」。
对于第一和第三类问题已经得到了完满的解决,而第二和第四类问题则只得到了部分解决。
第一类问题就是研究所谓的欧拉图的性质,而第二类问题则是研究所谓的哈密顿图的性质。
BFS需要和队列配合使用。
可以在遍历整个图的同时,求出原点到每个点的最短距离。(每条边边权为)
DFS需要和栈配合使用,但是因为计算机中可以使用递归,所以事实上这个栈并不需要自己亲自维护。
一些图论算法,比如欧拉回路生成一组解,Tarjan求连通分量,都是用DFS。
如果只需要得到图的连通块数,和每个连通块的大小,那么可以使用并查集。
并查集和前面两个相比,优点是不需要存边。