根据我的推理,基本情况是图表上的所有节点都已被访问。
一般情况是所有相邻边都被标记。
初始情况是选择单个节点作为起点。
这个对吗?可能的答案如下:
A. “发现”了一个未访问的节点。B. 所有相邻边都被标记。C. 图上的所有边都已被访问。D. 图上的所有节点都被访问过。E. 选择单个节点作为起点。
在此先感谢您的帮助!
根据我的推理,基本情况是图表上的所有节点都已被访问。
一般情况是所有相邻边都被标记。
初始情况是选择单个节点作为起点。
这个对吗?可能的答案如下:
A. “发现”了一个未访问的节点。B. 所有相邻边都被标记。C. 图上的所有边都已被访问。D. 图上的所有节点都被访问过。E. 选择单个节点作为起点。
在此先感谢您的帮助!
Depth-First-Search-Kickoff( Maze m )
Depth-First-Search( m.StartCell )
End procedure
Depth-First-Search( MazeCell c )
If c is the goal
Exit
Else
Mark c "Visit In Progress"
Foreach neighbor n of c
If n "Unvisited"
Depth-First-Search( n )
Mark c "Visited"
End procedure
http://www.cs.washington.edu/education/courses/cse326/03su/homework/hw3/dfs.html
你需要使用memoization来标记节点。
如果您没有使用递归,您可以使用队列实现 dfs 并检查队列是否为空。