实现Hierholzer就while循环前stack第一次压栈的疑问

来源:10-6 实现 Hierholzer 算法

甲骨文_0001

2021-11-10

图片描述
老师,我的疑问写在了上图中,你看下哈:)

写回答

1回答

liuyubobobo

2021-11-11

欧拉回路指每条边必须走且仅走一次。点重复是正常的。比如 一个图是 0-1 之间四条路。那么对应的欧拉回路是:0-1-0-1-0。


或者我没有理解你的问题,你认为问题是什么,用一个具体的测试用例来说明?


继续加油!:)

1
3
liuyubobobo
回复
甲骨文_0001
我明白你的问题了。你的模拟最后一部分有误。可能因为你没有写 stack 导致的。在 while 的 else 部分里,并非是把最后的 curv 添加到 res 以后,再把 stack 里的所有节点都放到 res 里。stack 的最后一个节点 pop 出来以后,没有放到 res 里。(else 内的逻辑是先 res.add, 再 stack.pop)。res 里的元素数和 stack 是一致的,而非多一个。如果还想不明白,请尝试运行这个程序试试看?继续加油!:)
2021-11-12
共3条回复

玩转算法系列--图论精讲(Java版)

30+小时系统学习,bobo带你克服被图论支配的恐惧

1591 学习 · 324 问题

查看课程