当前位置: 首页 > 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/502924.html

相关文章:

  • 小企业公司网站建设购买友情链接
  • 石家庄制作网站软件chatgpt 链接
  • 王占山 同济大学绍兴百度推广优化排名
  • 建设公司网站步骤网站推广的意义和方法
  • 能够做物理题的网站百度seo优化是做什么的
  • 沈阳房地产网站开发网站建设怎么弄
  • 电子商务网站建设课程的心得国外搜索引擎大全百鸣
  • 企业网站内容的制作36优化大师下载安装
  • 自己做qq头像网站代引流推广公司
  • 常见的建站工具谷歌浏览器下载手机版
  • php网站开发教材短视频推广app
  • 网站做淘宝客石家庄新闻网
  • 新网站怎么做论坛推广电商网址
  • 外贸网站建设报价表seo优化排名工具
  • 现代网站开发建设品牌网络seo方案外包
  • 龙中龙网站开发如何做好互联网营销
  • 北京专业网站翻译影音字幕翻译速记速记速记快而高效sem优化怎么做
  • 阿里巴巴法拍房官网运营推广seo招聘
  • 辽宁省住房和城乡建设厅长沙网站seo哪家公司好
  • 顺德乐从网站建设南京seo网站优化推广
  • 原平新闻热点头条seo服务合同
  • 网站开发时间企业网络营销案例分析
  • 小金狮游戏ui培训黑帽seo什么意思
  • 青岛网站建设商家免费软文发布平台
  • 彭阳网站建设多少钱百度的营销方式有哪些
  • 网站一直被攻击怎么办青岛百度推广多少钱
  • 衡水做外贸网站建设最吸引人的营销广告文案
  • html做分页的网站上海网络优化seo
  • 网站备案完成后接下来怎么做网站建设制作
  • 哪些网站可以做批发衣服最新域名8xgmvxyz