算法笔记的笔记——第8章 搜索专题
深度优先搜索(DFS)
- 枚举所有完整路径以遍历所有情况
- 栈
实现
- 使用递归可以实现深度优先搜索
- 可以通过条件限制节省DFS计算量,方法称作剪枝
广度优先搜索(BFS)
- 优先访问能直接到达的所有结点
- 队列
实现
void BFS(int s) {
queue<int> q;
q.push(s);
while (!q.empty()) {
取出队首元素top;
访问队首元素top;
将队首元素出队;
将top下一层节点中未入队的全部入队,并设置为已入队;
}
}
- 设置inq数组,含义为结点是否已入过队(而非结点是否已被访问)
- STL的
queue
创造元素副本,原元素和队列中的副本互不影响
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
· 张高兴的大模型开发实战:(一)使用 Selenium 进行网页爬虫