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

固原建设厅官方网站钓鱼网站是什么技术的人做的出来

固原建设厅官方网站,钓鱼网站是什么技术的人做的出来,做电子商务系统网站建设,凡科外贸网站建设在无权图中,广度优先搜索(BFS)是解决最短路径问题的高效算法。接下来博主从专业角度深入探讨其实现细节,并给出C代码示例: 目录 一、核心原理 二、算法步骤 三、C实现关键点 1. 数据结构 2. 边界检查 3. 路径回溯…

        在无权图中,广度优先搜索(BFS)是解决最短路径问题的高效算法。接下来博主从专业角度深入探讨其实现细节,并给出C++代码示例:


目录

一、核心原理

二、算法步骤

三、C++实现关键点

1. 数据结构

2. 边界检查

3. 路径回溯(可选)

四、代码实现

五、路径回溯实现

六、复杂度分析

七、适用场景与限制


一、核心原理

BFS按层遍历节点,确保首次到达目标节点的路径是最短的。其核心特性为:

  • 队列管理:先进先出(FIFO)保证按层扩展。

  • 访问标记:避免重复访问,防止环路。

  • 距离记录:每个节点的距离为父节点距离加1。


二、算法步骤

  1. 初始化:起点入队,标记距离为0。

  2. 遍历队列:逐层处理节点,遍历所有合法邻居。

  3. 终止条件:到达终点时返回距离;队列为空则表示不可达。


三、C++实现关键点

1. 数据结构

  • 队列:存储待处理节点,使用queue<pair<int, int>>

  • 距离矩阵:记录每个节点的最短距离,初始化为-1表示未访问。

  • 方向数组:定义移动方向(如4方向或8方向)。

int dx[] = {-1, 1, 0, 0};  // 上下左右
int dy[] = {0, 0, -1, 1};

2. 边界检查

确保新坐标在网格范围内,且节点可访问(非障碍、未访问)。

3. 路径回溯(可选)

通过父节点矩阵记录路径,回溯时从终点反向追踪至起点。


四、代码实现

#include <iostream>
#include <vector>
#include <queue>
using namespace std;int bfsShortestPath(vector<vector<int>>& grid, pair<int, int> start, pair<int, int> end) {int n = grid.size();if (n == 0) return -1;int m = grid[0].size();queue<pair<int, int>> q;vector<vector<int>> dist(n, vector<int>(m, -1));int dx[] = {-1, 1, 0, 0};int dy[] = {0, 0, -1, 1};// 初始化起点q.push(start);dist[start.first][start.second] = 0;while (!q.empty()) {auto curr = q.front();q.pop();// 到达终点if (curr.first == end.first && curr.second == end.second) {return dist[curr.first][curr.second];}// 遍历四个方向for (int i = 0; i < 4; ++i) {int x = curr.first + dx[i];int y = curr.second + dy[i];// 检查新坐标是否合法if (x >= 0 && x < n && y >= 0 && y < m && grid[x][y] == 0 && dist[x][y] == -1) {dist[x][y] = dist[curr.first][curr.second] + 1;q.push({x, y});}}}return -1;  // 不可达
}// 示例用法
int main() {vector<vector<int>> grid = {{0, 1, 0, 0},{0, 0, 0, 1},{1, 1, 0, 0},{0, 0, 0, 0}};pair<int, int> start = {0, 0};pair<int, int> end = {3, 3};int shortest = bfsShortestPath(grid, start, end);if (shortest != -1) {cout << "最短路径长度: " << shortest << endl;} else {cout << "无法到达终点!" << endl;}return 0;
}

五、路径回溯实现

扩展代码以记录路径:

vector<pair<int, int>> getPath(vector<vector<pair<int, int>>>& parent, pair<int, int> start, pair<int, int> end) {vector<pair<int, int>> path;pair<int, int> curr = end;while (curr != start) {path.push_back(curr);curr = parent[curr.first][curr.second];}path.push_back(start);reverse(path.begin(), path.end());return path;
}// 在BFS函数中添加父节点记录
vector<vector<pair<int, int>>> parent(n, vector<pair<int, int>>(m, {-1, -1}));
// ...
if (条件满足) {parent[x][y] = curr;
}
// 找到终点后调用getPath

六、复杂度分析

  • 时间复杂度:O(N×M),每个节点处理一次。

  • 空间复杂度:O(N×M),队列和距离矩阵的开销。


七、适用场景与限制

  • 适用:无权图、网格迷宫、社交网络层级关系。

  • 限制:仅处理无权图,带权图需改用Dijkstra或A*算法。

        通过以上实现,BFS能够高效解决无权图中的最短路径问题。正确管理队列和状态标记是保证算法正确性的关键。


文章转载自:

http://dzpt8BY8.nsfxt.cn
http://z6xXZFbz.nsfxt.cn
http://0k3LIGAR.nsfxt.cn
http://7ZxojX1X.nsfxt.cn
http://6JvkMExt.nsfxt.cn
http://BwhWIZkc.nsfxt.cn
http://K1Q0I1l3.nsfxt.cn
http://9FcoU06h.nsfxt.cn
http://qy2Q79tK.nsfxt.cn
http://RmSDDLAT.nsfxt.cn
http://eTXZ68MA.nsfxt.cn
http://E7ZpMgVe.nsfxt.cn
http://DmkXJz8T.nsfxt.cn
http://2PvBg657.nsfxt.cn
http://HPndRd2O.nsfxt.cn
http://WSWcIJsG.nsfxt.cn
http://8PoaqsvZ.nsfxt.cn
http://EGATm0T7.nsfxt.cn
http://Zy5k4Xxn.nsfxt.cn
http://f9MIkXzI.nsfxt.cn
http://hoB2Fher.nsfxt.cn
http://GGJFY0yC.nsfxt.cn
http://mSDcRhk7.nsfxt.cn
http://0oD07PYr.nsfxt.cn
http://qVCdnY7j.nsfxt.cn
http://baXyj0cX.nsfxt.cn
http://RIfOH1jb.nsfxt.cn
http://hF1b3ZH0.nsfxt.cn
http://GVk2FMrj.nsfxt.cn
http://rYtianV2.nsfxt.cn
http://www.dtcms.com/wzjs/615198.html

相关文章:

  • seo网站优化及网站推广淘宝网站建设流程
  • 网站首页快照应该怎么江门网页设计
  • 大埔县住房和城乡规划建设局网站wordpress模板生
  • wordpress 首页幻灯片插件汕头百度seo公司
  • 上海松江区建设局官方网站如何打百度人工电话
  • 去菲律宾做网站亚马逊网站入口
  • h5网站开发公司销售管理系统设计
  • 酒店类网站开发的策略环保主题网站模板
  • espcms易思企业网站管理系统破解wordpress 多域名多站点
  • 网站建设多少钱裤传统营销渠道有哪些
  • 昆明网站开发报价深圳做微藻的公司网站
  • 建筑网站招聘医院网站建设案例
  • 连锁 加盟 网站模板如何做网站营销推广
  • firework做网站教程企业建站公司排名为什么不好做
  • 网站开发设计手册网站建设的组织结构
  • 微信开发网站建设个人个性网页界面设计
  • 自适应式网站模板中国十大物联网公司
  • 个人网站 不用备案吗登录后跳转到之前wordpress
  • 国外做无纺布的网站西安建设企业网站
  • 网站导航常用关键字衡阳网站推广
  • 现在建网站做淘宝联盟推广能赚钱吗网络推广引流方法
  • 网站域名怎么快速备案网站推广app开发
  • 深圳网站建设销售前景北京代理网站备案
  • 嘉兴做网站优化哪家好手机应用软件开发工具
  • 网页设计网站搭建合肥哪家公司做网站
  • 网站开发教程H5有专做代金券的网站吗
  • 建站过程英文网站的首页怎么做
  • 国外建设网站流程小满crm外贸系统
  • 网站 设计 分辨率阿里域名注册网站
  • 南宁公司网站建设方案青岛创世网络网站建设