算法笔记的笔记——第8章 搜索专题
深度优先搜索(DFS)
- 枚举所有完整路径以遍历所有情况
- 栈
实现
- 使用递归可以实现深度优先搜索
- 可以通过条件限制节省DFS计算量,方法称作剪枝
广度优先搜索(BFS)
- 优先访问能直接到达的所有结点
- 队列
实现
void BFS(int s) {
queue<int> q;
q.push(s);
while (!q.empty()) {
取出队首元素top;
访问队首元素top;
将队首元素出队;
将top下一层节点中未入队的全部入队,并设置为已入队;
}
}
- 设置inq数组,含义为结点是否已入过队(而非结点是否已被访问)
- STL的
queue创造元素副本,原元素和队列中的副本互不影响

浙公网安备 33010602011771号