求强连通分量的tarjan算法
强连通分量有向图中的概念在一个图的子图中,任意两个点相互可达,也就是存在互通的路径,那么这个子图就是强连通分量。如果一个有向图的任意两个点相互可达,那么这个图就称为强连通图。如果u是某个强连通分量的根,那么:(1)u不存在路径可以返回到它的祖先(2)u的子树也不存在路径可以返回到u的祖先。强连通分量。在一个非强连通图中极大的强连通子图就是该图的强连通分量。比如图中子图{1,2,3,5}是一个强连通分量,子图{4}是一个强连通分量。
tarjan算法的基础是两个数组ow和fn,和一个栈。low数组是一个标记数组,记录该点所在的强连通子图所在搜索子树的根节点的fn值,fn数组记录搜索到该点的时间,也就是第几个搜索这个点的。根据以下几条规则,经过搜索遍历该图和对栈的操作,我们就可以得到该有向图的强连通分量。数组的初始化:当首次搜索到点p时,Dfn与Low数组的值都为到该点的时间。
堆栈:每搜索到一个点,将它压入栈顶。
当点p有与点p’相连时,如果此时(时间为dfn[p]时)p’不在栈中,p的low值为两点的low值中较小的一个。
当点p有与点p’相连时,如果此时(时间为dfn[p]时)p’在栈中,p的low值为p的low值和p’的dfn值中较小的一个。
每当搜索到一个点经过以上操作后(也就是子树已经全部遍历)的low值等于dfn值,则将它以及在它之上的元素
您可能关注的文档
最近下载
- (最新)26年人教版八年级英语下册Unit7第6课时(Section B 3a-3c).pptx
- 2025年广东省惠州市中考化学试题卷(含答案解析).docx
- 四川省自然资源投资集团有限责任公司2026年上半年公开招聘笔试参考题库及答案解析.docx VIP
- 部编版四年级《语文》下册第27课《巨人的花园》优质课件.pptx
- QJHJC 00 1021-2019 先张法预应力混凝土波浪桩.pdf VIP
- 【部编版】四年级语文下册第27课《巨人的花园》精品课件.pptx
- 汇编语言实验答案 (王爽).pdf VIP
- 盐城市中考:2025年-2023年《物理》考试真题与参考答案.pdf VIP
- 上海新高考数学压轴 第 21 题试题+答案汇编.docx VIP
- 新概念英语第二册 Lesson90课件.ppt VIP
原创力文档

文档评论(0)