DAG 中的祖先到底是什么

What exactly are ancestors in DAG

我是图论的新手,对 DAG(或一般图中)中的祖先定义感到困惑。

For example in the following DAG

1--->2--->3<---4<---5

如果我首先从 1 个顶点开始 DFS,那么覆盖的路径是 1--2--3。接下来,如果我从顶点 5 开始 DFS, 那么走过的路就是5--4。不再访问顶点 3。所以访问顺序是1 2 3 5 4.
3的祖先呢?他们也只有1,2或4,5吗? 那么 4 的祖先 Ancestor 呢?它只是 5 还是 1,2,因为它们在访问 5 之前也被访问过?

DAG中一个顶点vancestors是所有顶点v'[=21的集合=] != v 这样 v 可以从 v' 到达。因此,在您的示例中,3 的祖先将是 1、2、4 和 5。

当然,如果您只是查看特定的路径,情况就不一样了:所以路径 1->2->3 中 3 的祖先将只是 1 和 2 .