DFS算法怎么保证顺序的正确性,没有读懂解说啊,求大神精解!

0
0

DFS算法怎么保证顺序的正确性,怎么找到L1,没有读懂解说啊,求大神精解!

1 answer(s)

1

就是最后的DFS那个伪代码,对照一个图模拟一下就明白了。 比如: enter image description here

我们用+表示进栈,-表示退栈的话,一条从1开始DFS的过程可能是:
1+, 2+, 6+, 5+, 1+, 1-, 5-, 6-, 3+, 7+, 2+, 2-, 7-, 4+, 8+, 3+, 3-, 8-, 4-, 3-, 2-, 1-
把退栈子序列拿出来的话就是:
1-, 5-, 6-, 2-, 7-, 3-, 8-, 4-, 3-, 2-, 1-
是不是恰好是一条欧拉路?

值得一提的是,无论DFS过程中边的顺序是怎么选择的,都能得到一条欧拉路,比如:
1+, 2+, 3+, 7+, 2+, 6+, 5+, 1+, 1-, 5-, 6-, 2-, 7-, 8+, 4+, 3+, 3-, 4-, 8-, 3-, 2-, 1-
对应的欧拉路是:
1-, 5-, 6-, 2-, 7-, 3-, 4-, 8-, 3-, 2-, 1-

write answer 切换为英文 切换为中文


转发分享