[关闭]
@w1024020103 2017-05-20 11:34 字数 400 阅读 739

lab11 Graphs

CS61B

Intro

image_1bghqa9g510hj3eo9l11qba164p9.png-71.2kB

image_1bghqc65i1udikjcdoq1nuo1536m.png-104.8kB

C. MazeBreadthFirstPaths

image_1bghqfk8416gbvc85rfs81iuu13.png-54kB

基本上照着参考写就没问题.

注意到:MazeDepthFirstPaths里面dfs(int v)方法体内有recursion来达到找到target就terminate的题目要求:

  1. dfs(w);
  2. if (targetFound) {
  3. return;
  4. }

然而MazeBreadthFirstPaths的bfs(int s)方法体内并没有bfs的recursion,用

if(targetFound)

就没什么用,因为根本不会循环执行,targetFound这个boolean变量始终没更新。所以我采用了if(marked(t))来判断是不是到达终点,如果到达就terminate.

注意

Queue是一个interface,不是class,不能new. 但可以用

Queue q = new PriorityQueue<>()

等具体的实施方法来实施。

image_1bghuq8fh1dvj1v91gpmca6okh1g.png-50.8kB

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注