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

菠萝之乡网站建设seo网站优化培

菠萝之乡网站建设,seo网站优化培,小公司网站维护,施工企业会计课后答案目录 一、拓扑排序简介 二、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/486758.html

相关文章:

  • html做校园网站免费下载b站视频软件
  • 网站制作用什么软件sem和seo的关系
  • 设计的好网站网站推广优化招聘
  • 淘宝美工网站怎么做王通seo赚钱培训
  • 苏州建设网站公司上海的重大新闻
  • 茶叶网站建设哪家广州网站开发多少钱
  • 日照地方网站建设百度seo优化系统
  • 百瑞网站建设一键制作单页网站
  • 企业网站建设须知一个公司可以做几个百度推广
  • 营销网站建站公司转让打开浏览器直接进入网站
  • 自己做的网站字体变成方框seo优化要做什么
  • 广东网站建设费用电商具体是做什么的
  • 以绿色为主的网站最新网站查询工具
  • 哈尔滨网站建设代理商邵阳做网站的公司
  • 幼儿园网站怎样建设蚂蚁bt
  • 优秀网站优点网页查询
  • 网站懒加载怎么做营销网课
  • 做网站好的公司考研最靠谱的培训机构
  • 抚州企业网站做优化新闻发稿平台有哪些?
  • 网站 psd双11销量数据
  • 重庆网站建设团队加强服务保障满足群众急需m
  • ecshop二次开发网站开发心得线上宣传渠道
  • 企业是做app还是做网站互联网十大企业
  • 如何制作app软件下载青岛seo整站优化公司
  • 新手怎么样学做网站友情链接交易网
  • 怎么修改wordpress模板淘宝seo培训
  • 自己做的网站用国外的空间怎么样源码之家
  • seo网站排名公众号推广合作平台
  • 哈尔滨网站建设费用某产品网络营销推广方案
  • 产品ui设计是什么百度seo推广价格