摘要: Tarjan或Kosaraju算法【对每个点归类belong】求出SCC之后,对num_scc个SCC重新建图,针对不同问题,考虑重边的问题。 阅读全文
posted @ 2014-08-28 18:13 万箭穿心,习惯就好。 阅读(245) 评论(0) 推荐(0) 编辑
摘要: 一个有向图称为半连通(Semi-Connected),满足:对于图中任两点u,v,存在一条u到v的有向路径或者从v到u的有向路径。 若满足,则称G’是G的一个导出子图。 若G’是G的导出子图,且G’半连通,则称G’为G的半连通子图。若G’是G所有半连通子图中包含节点数最多的,则称G’是G的最大半连通 阅读全文
posted @ 2014-08-28 16:53 万箭穿心,习惯就好。 阅读(573) 评论(0) 推荐(0) 编辑
摘要: 运用Tarjan算法,求解图的点/边双连通分量。 1、点双连通分量【块】 割点可以存在多个块中,每个块包含当前节点u,分量以边的形式输出比较有意义。 2、边双连通分量【缩点】 某一个点只能在一个“缩点”内,“缩点”时不包括当前节点u,分量以顶点的形式输出。 阅读全文
posted @ 2014-08-28 13:46 万箭穿心,习惯就好。 阅读(419) 评论(0) 推荐(0) 编辑
摘要: 使用Tarjan算法求解图的割点和桥。 1、割点 主要的算法结构就是DFS,一个点是割点,当且仅当以下两种情况: (1)该节点是根节点,且有两棵以上的子树; (2)该节点的任一子节点,没有到该节点祖先的反向边(就是说如果没有这个割点,那么这个子节点和那个祖先之间不连通); 2、桥 Tarjan算法求 阅读全文
posted @ 2014-08-28 11:45 万箭穿心,习惯就好。 阅读(379) 评论(0) 推荐(0) 编辑
摘要: 此处的链式与循环队列可以应用于BFS和树的层序遍历。下面是对其结构和基本操作的程序描述。 1、循环队列 解决循环队列的队空和队满的方法: [1].增加一个参数count,用来记录数组中当前元素的个数; [2].为避免队空和满两状态混淆,少用一个存储空间,也就是数组最后一个存数空间不用,(rear+1 阅读全文
posted @ 2014-08-28 10:10 万箭穿心,习惯就好。 阅读(438) 评论(0) 推荐(0) 编辑