背景
搜索算法的兩種思路,廣度優先(BFS)和深度優先(DFS)遍歷圖,都通過記錄已遍歷的節點避免圖中的環。
BFS
visited := make(map[Pos]bool)
stack := make([]Pos) // 下一次要遍歷的節點,空的時候結束,每次將節點周圍的節點入列。
DFS
visited := make(map[Pos]bool)
func travel(node) {
travel(node.children)
}
通過遞歸的方式入棧子節點。
搜索算法的兩種思路,廣度優先(BFS)和深度優先(DFS)遍歷圖,都通過記錄已遍歷的節點避免圖中的環。
visited := make(map[Pos]bool)
stack := make([]Pos) // 下一次要遍歷的節點,空的時候結束,每次將節點周圍的節點入列。
visited := make(map[Pos]bool)
func travel(node) {
travel(node.children)
}
通過遞歸的方式入棧子節點。