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

四川省成华区建设局网站陕西网站建设网络公司

四川省成华区建设局网站,陕西网站建设网络公司,网站标准尺寸,商城网站建设-目录 一、拓扑排序简介 二、BFS解决拓扑排序的步骤 三、C实现 四、代码解释 五、总结 一、拓扑排序简介 拓扑排序是对有向无环图(DAG)进行排序的一种方法,使得对于图中的每一条有向边 (u, v),u 在排序中总是位于 v 的前面。拓…

目录

一、拓扑排序简介

二、BFS解决拓扑排序的步骤

三、C++实现

四、代码解释

五、总结


一、拓扑排序简介

        拓扑排序是对有向无环图(DAG)进行排序的一种方法,使得对于图中的每一条有向边 (u, v),u 在排序中总是位于 v 的前面。拓扑排序的结果可能不唯一。

二、BFS解决拓扑排序的步骤

  1. 初始化:计算每个顶点的入度(即指向该顶点的边的数量),并将所有入度为0的顶点加入队列。

  2. BFS遍历

    • 从队列中取出一个顶点,将其添加到拓扑排序的结果中。

    • 移除该顶点的所有出边,即将其邻接顶点的入度减1。

    • 如果某个邻接顶点的入度变为0,则将其加入队列。

  3. 结束条件:当队列为空时,如果拓扑排序结果中的顶点数量与图中的顶点数量相同,则排序成功;否则,图中存在环,无法进行拓扑排序。

三、C++实现

#include <iostream>
#include <vector>
#include <queue>using namespace std;vector<int> topologicalSort(int V, vector<vector<int>>& adj) {vector<int> inDegree(V, 0);for (int u = 0; u < V; ++u) {for (int v : adj[u]) {inDegree[v]++;}}queue<int> q;for (int u = 0; u < V; ++u) {if (inDegree[u] == 0) {q.push(u);}}vector<int> result;while (!q.empty()) {int u = q.front();q.pop();result.push_back(u);for (int v : adj[u]) {if (--inDegree[v] == 0) {q.push(v);}}}if (result.size() != V) {cout << "图中存在环,无法进行拓扑排序" << endl;return {};}return result;
}int main() {int V = 6;vector<vector<int>> adj = {{2, 3},{3, 4},{5},{5},{5},{}};vector<int> sortedOrder = topologicalSort(V, adj);for (int u : sortedOrder) {cout << u << " ";}cout << endl;return 0;
}

四、代码解释

  • inDegree 数组用于存储每个顶点的入度。

  • adj 是图的邻接表表示。

  • topologicalSort 函数实现了拓扑排序的逻辑。

  • 如果排序结果中的顶点数量与图中的顶点数量不一致,说明图中存在环。

五、总结

        使用BFS进行拓扑排序是一种高效的方法,时间复杂度为O(V + E),其中V是顶点数量,E是边数量。这种方法不仅适用于拓扑排序,还可以用于检测图中是否存在环。

http://www.dtcms.com/wzjs/6659.html

相关文章:

  • java做动态网站seo优化的基本流程
  • 黑色炫酷的监控网站html西安网站设计开发
  • 模板网站可以做备案吗模板建站常规流程
  • 网站弹出信息怎么做网络营销推广方案策划书
  • 阿里云做网站买什么软件网络推广的网站有哪些
  • 佛山网站建设外包公司今日新闻最新头条10条摘抄
  • 360建筑网简历电话怎么修改seo快速排名软件推荐
  • 怎么查网站是哪个公司做的郑州网站优化公司
  • 网络服务单位招标广州seo排名优化
  • 网站建设的付款方式灰色词排名接单
  • 做h5网站公司广州竞价托管代运营
  • 做网站商丘如何做好网站站内优化
  • 国内做国外代购在哪个网站苏州seo培训
  • 网站设计与开发未来发展方向西安网站seo厂家
  • 南山区住房和建设局网站官网巢湖seo推广
  • 服务器有了怎么做网站win7优化软件
  • soap公司网站seo优化
  • 网站后台发布文章2024年阳性最新症状
  • 竹子建站下载药品网络营销公司
  • 网站建设需求分析有什么内容网站如何做关键词优化
  • 微信小程序后端开发语言北京百度关键词优化
  • 网站群建设意义全国31省市疫情最新消息今天
  • 中国菲律宾男篮如何做网站搜索引擎优化
  • 德州网站建设费用seo薪酬如何
  • 途牛网网站建设评价青岛优化网站关键词
  • 邯郸国外网站建设费用朝阳seo推广
  • 图片网站cms网络营销推广方案3篇
  • WordPress文章列表时间龙斗seo博客
  • 网站建设设计说明书电商推广方案
  • 侯马建设规划局网站今日新闻热点10条