我有关于深度优先遍历的相互矛盾的信息,并且可以在理解如何构建程序时使用一些帮助。给定一个图,我想打印一个顶点序列。用户将输入一个特定的节点来开始遍历。我正在查看不同的示例,但我不明白深度优先遍历的顺序是如何工作的。我有以下伪代码可以使用:
public DFS() {
DFS(v)
{ num(v) = i ++;
for all vertices u adjacent to v
{ if num(u) is 0
attach edge(uv) to edges;
DFS(u);
}
}
depthFirstSearch()
{ for all vertices v
num(v) = 0;
edges = null; //vector of all edges
i=1;
while there is a vertex v such that num(v) is 0
DFS(v);
output edges;
}