图形预订/后期遍历?

时间:2016-03-23 20:29:59

标签: java data-structures traversal depth-first-search

这是DFS预订顶点编号,对应于DFS树的预先遍历遍历,第二个是序列后编号,对应于DFS树的后序遍历。

有人可以解释我们是如何得到这个订购的,因为我只知道如何在二叉树上应用预购或后订购。谢谢

pre-order numbering

post-order numbering

1 个答案:

答案 0 :(得分:1)

尝试使用您的示例逐步遵循此伪代码,您将了解算法,它非常简单,只是简单的DFS:

Initialize clock to 1

PreVisit(v):
    pre[v] <- clock
    clock <- clock + 1

PostVisit(v):
    post[v] <- clock
    clock <- clock + 1

Explore(v):
    visited[v] = true
    PreVisit(v)
    for all u adj to v:
        if u is not visited:
            Explore(u)
    PostVisit(v)

请注意,您必须创建一个具有顶点长度的prepostvisited数组。对于visited数组,您必须在致电false之前填写Explore(v)