在今天的课开始之前先道个歉……这几天我有事,所以三周没更贴,今天一起更(稿我都写好啦)
今天的主要知识点是图的连通性。先来一些干货,没有这个就没有tarjan算法的那种:
1.连通分量&强连通分量:一个有向图或无向图的最大连通子图,一个连通图的连通分量就是他本身。如果这个图不联通,每一个联通部分是一个连通分量。
2.强连通有向图:一般叫强连通图,意思是一个有向图的所有点都相连,可以理解为从任意一个点都能走到一个指定的位置。
我们这是又要接触一个东西了,他叫搜索树,就是一个保存搜索顺序的树。
跟搜索树相关的干货:
1,树枝边:一棵树里所有的边都是树枝边。
2,前向边:两个点与树上的顺序一致,而且图中有这个边,注意前向边是从父节点指向子节点的。
3,后向边:跟前向边反着来,从子节点接到父节点。
4,横叉边:搜索树的两个子树之间的边,注意横叉边一定是从右往左连得。
知道了这些东西,就能学习tarjan算法了。
首先要在知道两个干货:时间戳&最小时间戳。
时间戳可以理解为是搜索的顺序标签,最小时间戳就是从一个点走到当前点,那个点的时间戳比当前点要小,当前点的最小时间戳就是那个点的时间戳。
我们在搜图的时候不可能不会遇到环(万恶之源)。一般的搜图算法基本上都是不过环的,有的算法一有环就不能用了,搜索时遇见环则会死循环。
但是tarjan算法允许有环,因为它采用