gpt4 book ai didi

algorithm - 术语 "VISITED"的 BFS 和正确性

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:54:35 24 4
gpt4 key购买 nike

mark x as visited
list L = x
tree T = x
while L nonempty
choose some vertex v from front of list
process v
for each unmarked neighbor w
mark w as visited
add it to end of list
add edge vw to T

大多数代码会选择在访问相邻节点之前将其标记为已访问。先添加所有邻居然后再访问它们在技术上不是正确的吗?

list L = x
tree T = x
while L nonempty
choose some vertex v from front of list
if (V NOT YET VISITD)
MARK V AS VISITED HERE
for each unmarked neighbor w
add it to end of list
add edge vw to T

为什么每个 BFS 似乎都将节点标记为已访问,而您甚至还没有访问它们?我正在尝试为 BFS 找到理论上正确的代码。哪一个是正确的?

最佳答案

两种算法都有效,但第二个版本可能会将同一节点添加到列表 L 两次。这不会影响正确性,因为会额外检查是否访问了节点,但会增加内存消耗并需要额外检查。这就是为什么您通常会在教科书中看到第一个算法。

关于algorithm - 术语 "VISITED"的 BFS 和正确性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40568917/

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