请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

图的广度优先遍历的bug

老师好,视频9-2里面说设置图节点visited放在子节点遍历以外会有问题,这里有点没理解,难道不是节点出队之后,这个节点就访问了,就应该添加到visited里面吗?
还麻烦老师举一个有问题的例子

正在回答

1回答

节点入队之后就应该标记为访问过,而不是在出队时候再标记

0 回复 有任何疑惑可以回复我~
  • 提问者 且听风吟720 #1
    标记的先后区别在哪儿呢……主要是这一点没有绕明白,没理解出队标记导致的问题
    回复 有任何疑惑可以回复我~ 2021-10-08 14:17:54
  • lewis #2
    会导致重复遍历,比如节点a已经入队,但没有出队,就没有标记,进而,就会导致再次遇到节点a时候,误以为它没有遍历过,导致重复遍历
    回复 有任何疑惑可以回复我~ 2021-10-08 14:26:05
  • 提问者 且听风吟720 #3
    举了个这种图的例子突然理解了……
    const graph = {
      0: [0, 1, 2, 3],
      1: [0, 1, 2, 3],
      2: [0, 1, 2, 3],
      3: [0, 1, 2, 3]
    }
    回复 有任何疑惑可以回复我~ 2021-10-08 14:26:52
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信