首页 文章

在单个BFS / DFS运行中查找以邻接列表的形式存储的图形中的所有节点的深度

提问于
浏览
0

我是图论的新手,最近一直在解决一些问题 . I was looking for a way to find the depth of every node in the graph . 这是我在纸上形式化的方式:

  • 运行for循环迭代每个顶点

  • 如果未访问顶点,请运行以该顶点作为源的DFS

  • 在DFS中,只要我们有更多的顶点去,我们继续前进(如在深度优先搜索中),我们保留一个计数器,cnt1,每次递增

  • 在递归DFS调用中回溯时,我们从最后一个顶点的当前计数开始初始化一个新计数器,并将值cnt1-cnt2给予每个顶点,然后继续减小cnt2 .

我不确定这是否正确,并且无法在代码中实现相同的功能 . 有什么建议?为了记录,我的图形以邻接列表的形式存储,形式为向量数组,如:

vector <int> a[100];

编辑:输入图是有向树的集合 . 我们为每个节点都有一个深度标签 - 表示从根到它的简单路径上的节点数 . 因此,我们需要找到每个节点的最大深度

1 回答

相关问题