@w1024020103
2017-05-20 11:34
字数 400
阅读 739
CS61B
基本上照着参考写就没问题.
注意到:MazeDepthFirstPaths里面dfs(int v)方法体内有recursion来达到找到target就terminate的题目要求:
dfs(w);
if (targetFound) {
return;
}
然而MazeBreadthFirstPaths的bfs(int s)方法体内并没有bfs的recursion,用
if(targetFound)
就没什么用,因为根本不会循环执行,targetFound这个boolean变量始终没更新。所以我采用了if(marked(t))来判断是不是到达终点,如果到达就terminate.
Queue是一个interface,不是class,不能new. 但可以用
Queue q = new PriorityQueue<>()
等具体的实施方法来实施。