树边,前向边,后向边,横叉边

转载 2016年05月31日 09:34:06

转自http://www.gonglin91.com/dfs-graph-edge/

树边,前向边,后向边,横叉边,应该说,不是一个图本身有的概念,应该是图进行DFS时才有的概念。图进行DFS会得到一棵DFS树(森林),在这个树上才有了这些概念。对图进行DFS,可以从任意的顶点开始,遍历的方式也是多样的,所以不同的遍历会得到不同的DFS树,进而产生不同的树边,前向边,后向边,横叉边。所以这4种边,是一个相对的概念。
在图的遍历中,往往设置了一个标记数组vis的bool值来记录顶点是否被访问过。但有些时候需要改变vis值的意义。令vis具有3种值并表示3种不同含义
vis = 0,表示该顶点没没有被访问
vis = 1,表示该顶点已经被访问,但其子孙后代还没被访问完,也就没从该点返回
vis = 2,,表示该顶点已经被访问,其子孙后代也已经访问完,也已经从该顶点返回
可以vis的3种值表示的是一种顺序关系和时间关系

《算法导论》334页有这4种边的准确定义,在此不累述
DFS过程中,对于一条边u->v
vis[v] = 0,说明v还没被访问,v是首次被发现,u->v是一条树边
vis[v] = 1,说明v已经被访问,但其子孙后代还没有被访问完(正在访问中),而u又指向v?说明u就是v的子孙后代,u->v是一条后向边,因此后向边又称返祖边
vis[v] = 3,z说明v已经被访问,其子孙后代也已经全部访问完,u->v这条边可能是一条横叉边,或者前向边

注意:树边,后向边,前向边,都有祖先,后裔的关系,但横叉边没有,u->v为横叉边,说明在这棵DFS树中,它们不是祖先后裔的关系它们可能是兄弟关系,堂兄弟关系,甚至更远的关系,如果是dfs森林的话,u和v甚至可以在不同的树上

在很多算法中,后向边都是有作用的,但是前向边和横叉边的作用往往被淡化,其实它们没有太大作用。


相关文章推荐

树边,前向边,后向边,横叉边

原文地址:树边,前向边,后向边,横叉边 树边,前向边,后向边,横叉边,应该说,不是一个图本身有的概念,应该是图进行DFS时才有的概念。图进行DFS会得到一棵DFS树(森林),在这个树上 才有...

树边,前向边,后向边,横叉边

原文链接: http://www.gonglin91.com/dfs-graph-edge/ 树边,前向边,后向边,横叉边 树边,前向边,后向边,横叉边,应该...

每天学习一算法系列(34)(求一个二叉树中任意两个节点间的最大距离,两个节点的距离的定义是这两个节点间边的个数)

题目: 求一个二叉树中任意两个节点间的最大距离,两个节点的距离的定义是这两个节点间边的个数,比如某个孩子节点和父节点间的距离是1,和相邻兄弟节点间的距离是2, 优化时间空间杂度。   思路一:...
  • yuucyf
  • yuucyf
  • 2011年09月02日 11:27
  • 6576

POJ 1511 Invitation Cards 链式前向星+spfa+反向建边

Invitation Cards Time Limit: 8000MS   Memory Limit: 262144K Total Submissions: 27200   Accepte...

写在前边。

写在前边。 感觉自己进入计算机这个庞大的sh

mysql命令行,多行命令时如何取消/返回修改前边的命令

mysql命令行,多行命令时如何取消/返回修改前边的命令 标签: mysql 2015-03-13 09:37 1834人阅读 评论(0) 收藏 举报 本文章已...

图论基础最小生成树之kruskal算法并查集版(加边法)

#include #include typedef struct {    int x,y;    int w;     }edger; edger edge[900]; int father[90...
  • lszdh
  • lszdh
  • 2011年08月12日 15:32
  • 570

hdu4612 连通性,求树的直径,加一边求最少桥

http://acm.hdu.edu.cn/showproblem.php?pid=4612 Problem Description   N planets are connected by...

在一些边已建的情况下求最小生成树hdu1102

hdu1102 :题意是在一个无向图中有一些边已经建好求最小生成树,思路很简单就是将已建的道路权值变为0即可。 我用的是kruskal求MST import java.util.Arrays; i...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:树边,前向边,后向边,横叉边
举报原因:
原因补充:

(最多只允许输入30个字)