BreadthFirst Search 2009 620 LOGO void BFS while
广度优先搜索 Breadth-First Search 2009年 6月20日
广度优先搜索 -- 实例 LOGO void BFS() { while (!queue. is. Empty()) { MPoint now = queue. get(); if (now. is. End. Point()) { 优! 最 set. Find(true); 现即 发 return; } if (leagal(now. up()) && now. up(). get. Value() > now. get. Value() + 1) { now. up(). set. Value(now. get. Value() + 1); queue. put(now. up()); } if (leagal(now. down()) && now. down(). get. Value() > now. get. Value() + 1) { now. down(). set. Value(now. get. Value() + 1); queue. put(now. down()); } if (leagal(now. left()) && now. left(). get. Value() > now. get. Value() + 1) { now. left(). set. Value(now. get. Value() + 1); queue. put(now. left()); } if (leagal(now. right()) && now. right(). get. Value() > now. get. Value() + 1) { now. right(). set. Value(now. get. Value() + 1); queue. put(now. right()); } } } 2020/11/2
广度优先搜索 -- 实例 FRA LOGO MAN WUR KAS KAR NUR ERF MUN AUG STU 85 217 173 165 320 403 487 415 503 要遍历所有的边! 遍历的过程中 不断更新上面这张表 2020/11/2
广度优先搜索 -- 实例 FRA LOGO MAN WUR KAS KAR NUR ERF MUN AUG STU 85 217 173 165 320 403 487 415 503 第一次从A结点到达B结点: D(B) = D(A) + D(AB) 以后再次从C结点来到B结点: if (D(C) + D(CB) < D(B)) { D(B) = D(C) + D(CB); } 2020/11/2
Thank you !
- Slides: 21