gpt4 book ai didi

algorithm - 如何使用循环查找算法查找欧拉路径?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:45:37 25 4
gpt4 key购买 nike

我正在尝试理解 here 中描述的算法,但解释真的不是很清楚:

'tour' is a stack

find_tour(u):
for each edge e=(u,v) in E:
remove e from E
find_tour(v)
prepend u to tour

to find the tour, clear stack 'tour' and call find_tour(u),
where u is any vertex with a non-zero degree.

u“添加”到堆栈是什么意思? tour 中的元素如何用于 find_tour 中?如果有人能向我解释一下,我会很高兴,谢谢!

最佳答案

堆栈“prepend”是一个推送。所以你将顶点 u 推到堆栈的顶部。这个想法是你从任何至少有一条边的顶点开始。跟随所有离开起始顶点的边,在删除边后递归调用函数(这样您就不会返回相同的边)。

find_tour 根本不使用 tour 中的元素。它只是一个数据存储,用于在算法完成后取回遍历图形的顺序。要返回游览,只需继续调用 tour.pop() 直到堆栈为空。它可能多次包含相同的顶点,如果该顶点有很多边,但因为每次在递归调用 find_tour 之前,您都会删除留下顶点的边,该函数最终将完成。

Oh 和 E 是图中的所有边,(u,v) 是从 u 到 v 的边。

关于algorithm - 如何使用循环查找算法查找欧拉路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1896426/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com