企业微信网站怎么做的/香港疫情最新消息

企业微信网站怎么做的,香港疫情最新消息,wordpress怎样获取文章分类的id,如何提高网站打开速度功能扩展说明: 图类封装:将图数据结构封装为类,提高代码复用性 最短路径查找:基于BFS实现未加权图的最短路径查找 路径重构:通过parent数组回溯构建完整路径 异常处理:当路径不存在时返回空向量 复杂度分析…

功能扩展说明:
图类封装:将图数据结构封装为类,提高代码复用性
最短路径查找:基于BFS实现未加权图的最短路径查找
路径重构:通过parent数组回溯构建完整路径
异常处理:当路径不存在时返回空向量
复杂度分析:
时间复杂度:O(V + E)
空间复杂度:O(V)
适用场景:
社交网络中的好友推荐
网页爬虫的URL抓取策略
游戏中的AI寻路算法
网络路由的最短路径查找
此实现可根据需要进一步扩展为带权图的BFS,只需改用优先队列并考虑权重即可。

#include <iostream>
#include <vector>
#include <queue>
#include <unordered_map>
#include <algorithm>using namespace std;// 图的邻接表表示法
class Graph {
private:int V; // 顶点数vector<vector<int>> adj; // 邻接表public:// 构造函数Graph(int vertices) : V(vertices), adj(vertices) {}// 添加边(无向图)void addEdge(int u, int v) {adj[u].push_back(v);adj[v].push_back(u); // 有向图则去掉这行}// 广度优先搜索vector<int> BFS(int start) {vector<bool> visited(V, false);vector<int> traversal_order;queue<int> q;visited[start] = true;q.push(start);while (!q.empty()) {int current = q.front();q.pop();traversal_order.push_back(current);// 遍历所有邻接节点for (int neighbor : adj[current]) {if (!visited[neighbor]) {visited[neighbor] = true;q.push(neighbor);}}}return traversal_order;}// 查找最短路径(未加权图)vector<int> shortestPath(int start, int end) {vector<bool> visited(V, false);vector<int> parent(V, -1);queue<int> q;visited[start] = true;q.push(start);while (!q.empty()) {int current = q.front();q.pop();if (current == end) break;for (int neighbor : adj[current]) {if (!visited[neighbor]) {visited[neighbor] = true;parent[neighbor] = current;q.push(neighbor);}}}// 重构路径vector<int> path;for (int at = end; at != -1; at = parent[at]) {path.push_back(at);}reverse(path.begin(), path.end());return path[0] == start ? path : vector<int>();}
};int main() {// 创建图Graph g(6);g.addEdge(0, 1);g.addEdge(0, 2);g.addEdge(1, 3);g.addEdge(1, 4);g.addEdge(2, 4);// 执行BFScout << "BFS遍历顺序: ";vector<int> traversal = g.BFS(0);for (int node : traversal) {cout << node << " ";}cout << endl;// 查找最短路径cout << "从0到4的最短路径: ";vector<int> path = g.shortestPath(0, 4);for (int node : path) {cout << node << " ";}cout << endl;return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/899554.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2023第十四届蓝桥杯大赛软件赛国赛C/C++ 大学 B 组(真题题解)(C++/Java题解)

本来想刷省赛题呢&#xff0c;结果一不小心刷成国赛了 真是个小迷糊〒▽〒 但&#xff0c;又如何( •̀ ω •́ )✧ 记录刷题的过程、感悟、题解。 希望能帮到&#xff0c;那些与我一同前行的&#xff0c;来自远方的朋友&#x1f609; 大纲&#xff1a; 一、子2023-&#xff…

CSS学习笔记6——网页布局

目录 一、元素的浮动属性、清除浮动 清除浮动的其他方法 1、使用空标签清除浮动影响 2、使用overflow属性清除浮动 3、使用伪元素清除浮动影响 原理 overflow属性 二、元素的定位 1、相对定位 2、绝对定位 ​编辑 3、固定定位 z-index层叠等级属性 一、元素的浮动…

Linux之数据链路层

Linux之数据链路层 一.以太网1.1以太网帧格式1.2MAC地址1.3MTU 二.ARP协议2.1ARP协议工作流程2.2ARP协议格式 三.NAT技术四.代理服务4.1正向代理4.2反向代理 五.四大层的学习总结 一.以太网 在我们学习完了网络层后我们接下来就要进入数据链路层的学习了&#xff0c;在学习完网…

MySQL的基础语法2(函数-字符串函数、数值函数、日期函数和流程函数 )

目录 一、字符串函数 1.常见字符串函数 ​编辑 2.字符串函数的基本使用 3.字符串函数的数据库案例演示 二、数值函数 1.常见数值函数&#xff08;如下&#xff09;&#xff1a; 2.数值函数的基本使用 3.数值函数的数据库案例演示 三、日期函数 1.常见的日期函数 2.日…

全新版租赁商城小程序源码系统 源码开源支持二开+图文搭建教程

在互联网商业的浪潮中&#xff0c;租赁业务凭借其独特的优势&#xff0c;正逐渐成为市场的新宠。对于开发者而言&#xff0c;快速搭建一个功能完备的租赁商城小程序&#xff0c;不仅能满足市场需求&#xff0c;还能为自己的业务拓展带来新的机遇。分享一款全新版租赁商城小程序…

Cent OS7+Docker+Dify

由于我之前安装了Dify v1.0.0&#xff0c;出现了一些问题&#xff1a;无法删除&#xff0c;包括&#xff1a;知识库中的文件、应用、智能体、工作流&#xff0c;都无法删除。现在把服务器初始化&#xff0c;一步步重新安装&#xff0c;从0到有。 目录 1、服务器重装系统和配置…

AI的未来:机遇、挑战与发展方向

&#x1f4dd;个人主页&#x1f339;&#xff1a;一ge科研小菜鸡-CSDN博客 &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; 1. 引言 人工智能&#xff08;AI&#xff09;已经成为当今世界最具革命性的技术之一&#xff0c;它正在深刻改变各个行业&#x…

使用vue cli 5.0 在vscode中运行vue命令报错

1、运行 vue -- version 报错 2、在cmd 命令行 执行 vue --version 正常 3、在终端中输入 get-ExecutionPolicy&#xff0c;查看当前权限 4、执行 set-executionpolicy remotesigned 命令设置为可用模式&#xff0c;但是报错 5、使用管理员打开power shell 执行 G…

瑞芯微 RKrga接口 wrapbuffer_virtualaddr 使用笔记

一、源码 官方在librga中给了很多 demo 以供参考&#xff0c;例如 imresize 操作&#xff1a; /** Copyright (C) 2022 Rockchip Electronics Co., Ltd.* Authors:* YuQiaowei <cerf.yurock-chips.com>** Licensed under the Apache License, Version 2.0 (the &qu…

06-SpringBoot3入门-常见注解(简介)

1、Controller ResponseBody Controller是Spring MVC 中的注解&#xff0c;负责处理 HTTP 请求。 ResponseBody是Spring MVC 中的注解&#xff0c;用于直接将方法的返回值作为 HTTP 响应体。 2、RestController RestController Controller ResponseBody 3、RequestMappin…

ubuntu24.04.2 NVIDIA GeForce RTX 4060笔记本安装驱动

https://www.nvidia.cn/drivers/details/242281/ 上面是下载地址 sudo chmod x NVIDIA-Linux-x86_64-570.133.07.run # 赋予执行权限把下载的驱动复制到家目录下&#xff0c;基本工具准备&#xff0c;如下 sudo apt update sudo apt install build-essential libglvnd-dev …

《Express:Node.js 里的 “闪电侠”》

“你就坐在我身边&#xff0c;好不好” 什么是Express 官方给出的概念&#xff1a;Express 是基于 Node.js 平台&#xff0c;快速、开放、极简的 Web 开发框架。 通俗的理解&#xff1a;Express 的作用和 Node.js 内置的 http 模块类似&#xff0c;是专门用来创建 Web 服务器…

vue遗漏的知识点(动态组件.组件库的操作使用)

----动态组件&#xff08;vue2vue3通用&#xff09; <component :is"..."> 的作用 <component> 是 Vue 的内置组件&#xff0c;用于动态渲染其他组件。:is 属性 用于指定要渲染的组件。它的值可以是&#xff1a; 组件的名称&#xff08;字符串&#xf…

vue 项目启动报错可以让 cursor启动

vue 项目启动报错可以让 cursor启动

Vue3当中el-tree树形控件使用

tree悬停tooltip效果 文本过长超出展示省略号 如果文本超出悬停显示tooltip效果 反之不显示 这里直接控制固定宽度限制 试了监听宽度没效果<template><el-treeshow-checkbox:check-strictly"true":data"data"node-key"id":props"…

PDF处理控件Aspose.PDF教程:通过C#、Java 和 Python删除 PDF中的水印

Aspose.PDF 是一个功能强大的库&#xff0c;旨在以编程方式处理 PDF 文档&#xff0c;提供创建、编辑、转换和操作的广泛功能。它支持 C#、Java 和 Python 等多种编程语言&#xff0c;使开发人员能够精确高效地自动处理 PDF。 对于开发人员来说&#xff0c;由于自动化和定制化…

基于STC89C51的太阳自动跟踪系统的设计与实现—单片机控制步进电机实现太阳跟踪控制(仿真+程序+原理图+PCB+文档)

摘 要 随着我国经济的飞速发展&#xff0c;促使各种能源使用入不敷出&#xff0c;尤其是最主要的能源&#xff0c;煤炭石油资源不断消耗与短缺&#xff0c;因此人类寻找其他替代能源的脚步正在加快。而太阳能则具有无污染﹑可再生﹑储量大等优点&#xff0c;且分布范围广&…

【硬件测试】基于FPGA的16QAM+帧同步系统开发与硬件片内测试,包含高斯信道,误码统计,可设置SNR

目录 1.算法硬件测试效果 2.算法涉及理论知识概要 2.1 16QAM调制解调原理 2.2 帧同步 3.Verilog核心程序 4.开发板使用说明和如何移植不同的开发板 5.完整算法代码文件获得 1.算法硬件测试效果 本文是之前写的文章: 《基于FPGA的16QAM帧同步系统verilog开发,包含testb…

多路径 TCP 调度的另一面

参考前面的文章 一个原教旨的多路径 TCP 和 MP-BBR 公平性推演&#xff0c;一直都破而不立&#xff0c;不能光说怎样不好&#xff0c;还得说说现状情况下&#xff0c;该如何是好。 如果 receiver 乱序重排的能力有限(拜 TCP 所赐)&#xff0c;如果非要在多路径上传输 TCP&…

大数据学习(92)-spark详解

&#x1f34b;&#x1f34b;大数据学习&#x1f34b;&#x1f34b; &#x1f525;系列专栏&#xff1a; &#x1f451;哲学语录: 用力所能及&#xff0c;改变世界。 &#x1f496;如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4dd;支持一…