广(宽)度优先搜索
2021/12/25 23:10:23
本文主要是介绍广(宽)度优先搜索,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
广(宽)度优先搜索
相关知识:队列
主要操作:
1.入队(push)
2.出队(pop)
3.判断队列是否为空(empty)
4.统计队列元素个数(size)
5.访问队首元素(front)
#include<queue> //queue头文件 queue<T> q; //构建一个T类型的队列 q.push(XX); //入队 q.pop(); //出队 q.front() //获得队首元素 q.empty(); //判断队列是否为空,在pop之前需要检查一下
基本思路:
不同于深搜的一搜到底,广搜更倾向于一层一层搜。
深搜:A-B-E-F-C-D-G
广搜:A-B-C-D-E-F-G
代码框架:
void BFS() { 初始化,添加开始节点(例如1) while (队列不为空) { 获取队首元素,将vis设置为1 //保险 for (遍历该元素所有邻居) { if(该邻居进过队) { 入队,将vis设置为1 //保险 } } 弹出队首元素 } } ———————————————————————————————————————————————— void BFS(起始点) { 将起始点放入队列中; 标记起始点访问; while (如果队列不为空) { 访问队列首元素; 删除队列首元素; for (x 所有相邻的点) { if (该点未访问且合法) { 将该点加入队列末尾 } } } 队列为空,BFS结束 }
这篇关于广(宽)度优先搜索的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-06-19《2023版Java工程师》课程升级公告
- 2024-06-15matplotlib作图不显示3D图,怎么办?
- 2024-06-1503-Loki 日志监控
- 2024-06-1504-让LLM理解知识 -Prompt
- 2024-06-05做软件测试需要懂代码吗?
- 2024-06-0514-ShardingSphere的分布式主键实现
- 2024-06-03为什么以及如何要进行架构设计权衡?
- 2024-05-31全网首发第二弹!软考2024年5月《软件设计师》真题+解析+答案!(11-20题)
- 2024-05-31全网首发!软考2024年5月《软件设计师》真题+解析+答案!(21-30题)
- 2024-05-30【Java】百万数据excel导出功能如何实现