当前位置: 首页 > news >正文

bfs广度优先搜索—邻接矩阵 + 邻接表

邻接矩阵

#include<iostream>
#include<queue>
using namespace std;

const int N = 1e2 + 10;
//n个顶点,m条边
int n, m;
//邻接矩阵
int g[N][N];
//标记数组
bool vis[N];//vis[2]=1/0  代表2号点   1-被标记  0-没被标记
void bfs(int s/*搜索的起点*/) {
	queue<int>q;
	q.push(s);
	vis[s] = 1;
	while (!q.empty()) {
		int v = q.front();
		q.pop();
		cout << v << " ";
		for (int i = 1; i <= n; i++) {
			if (!vis[i] && g[v][i] == 1) {
				q.push(i);
				vis[i] = 1;
			}
		}
	}
}

int main() {

	cin >> n >> m;

	for (int i = 1; i <= m; i++) {
		int u, v; cin >> u >> v;
		g[u][v] = g[v][u] = 1;
	}

	int s; cin >> s;
	bfs(s);//从起点s开始深搜
	return 0;
}

邻接表

#include<iostream>
#include<queue>
#include<vector>
using namespace std;

const int N = 1e4 + 10;
vector<int> g[N];//邻接表存图
bool vis[N];//标记数组-防止重复搜索
int n, m, s;//n-点数  m-边数  s-搜索起点

void bfs(int start/*搜索的起点*/) {
	queue<int> q;
	//1.起点入队+标记
	q.push(start);  vis[start] = 1;

	while (!q.empty()) {

		//2.搜索队首元素,并弹出队列
		int v = q.front();  q.pop();
		cout << v << " ";
		//3.找到v点所有邻接点,入队+标记
		for (auto u: g[v]) {
			if (!vis[u]) {//u是v的邻接点且u没有被搜索过
				q.push(u);  vis[u] = 1;
			}
		}
	}
}

int main() {

	cin >> n >> m;
	for (int i = 1; i <= m; i++) {
		int u, v;  cin >> u >> v;
		g[u].push_back(v);  g[v].push_back(u);
	}
	cin >> s;
	bfs(s);//从起点s开始搜索
	return 0;
}

http://www.dtcms.com/a/19210.html

相关文章:

  • 如何监控和优化 MySQL 中的慢 SQL
  • 预留:大数据Hadoop之——部署hadoop+hive+Mysql环境(Linux)
  • Kubernetes实战教程:基于Vue前端与Java后端的应用部署
  • OpenShift Operator开发探讨
  • 基于智能体和RWA的分布式商业生态商业模型架构设计
  • 元夜照春途——通付盾接入DeepSeek,AI Agent信任系统全面升级
  • 神经网络的学习 求梯度
  • CSS实现与文字长度相同的下划线
  • 清华大学KVCache.AI团队联合趋境科技联合的KTransformers开源项目为什么那么厉害
  • 智慧小区建设标准规范
  • 《鸿蒙教程-答案之书》Text文本显示不同颜色和大小
  • 如何设置 Nginx 连接超时并进行测试(Nginx优化)
  • LeetCode刷题---字符串---1513
  • easyexcel解析excel文件的时候报错
  • Spring Cloud-Sentinel
  • day11旅途短视频录制
  • AIGC图生视频保姆级教程
  • java基本语法
  • 什么是AI Agent的身份安全问题
  • 自学FOC系列分享--BLDC的电驱
  • S4D480 S4HANA 基于PDF的表单打印
  • 量子计算的五大优势
  • 盲注技术获取数据库的表名、列名和数据
  • 数据结构6
  • 【kafka系列】Kafka如何保证消息不丢失?
  • ABC393E/F简要题解
  • 【DeepSeek-R1】 API申请(火山方舟联网版)
  • Mongodb数据管理
  • 数据结构与算法面试专题——堆排序
  • 蓝桥练习生