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

太平阳建设集团网站购物网站首页模板下载

太平阳建设集团网站,购物网站首页模板下载,网站开发人员招聘,wordpress新建界面有向无环图是拓扑排序 拓扑排序将图中所有的顶点排成一个线性序列,使得所有的有向边均从序列的前面指向后面。 拓扑排序使用深度优先搜索来实现,图中有环则无法进行拓扑排序 一个有向图,如果图中有入度为0的点,就把这个点删掉…

有向无环图是拓扑排序 

拓扑排序将图中所有的顶点排成一个线性序列,使得所有的有向边均从序列的前面指向后面。

拓扑排序使用深度优先搜索来实现,图中有环则无法进行拓扑排序

一个有向图,如果图中有入度为0的点,就把这个点删掉,同时也删掉这个点所连的边

一直进行上面的处理过程,如果发现所有的点都能被删掉,则这个图可以进行拓扑排序

算法思路:首先记录各个点的入度

然后将入度为0的点放入队列,将队列里的点依次出对,然后删除这个点出发的边,删掉这个边同时边的另一侧的入度-1

如果所有的点都进过队列,则可以进行拓扑排序,否则输出-1,代表不能进行拓扑排序

#include <iostream>
#include <vector>
#include <queue>
using namespace std;

const int N = 100010;

vector<int> g[N];  // 邻接表存储图
int in_degree[N];  // 记录每个点的入度
int n, m;  // n 个点,m 条边

bool topological_sort() {
    queue<int> q;
    for (int i = 1; i <= n; i++) {
        if (in_degree[i] == 0) {
            q.push(i);  // 将所有入度为 0 的点加入队列
        }
    }

    while (!q.empty()) {
        int u = q.front();
        q.pop();
        cout << u << " ";  // 输出拓扑排序的顺序
        for (auto v : g[u]) {
            in_degree[v]--;  // 删除边 (u, v)
            if (in_degree[v] == 0) {
                q.push(v);  // 如果节点 v 的入度变为 0,则加入队列
            }
        }
    }

    // 如果所有点都被访问过,说明是有向无环图,返回 true
    for (int i = 1; i <= n; i++) {
        if (in_degree[i] != 0) {
            return false;
        }
    }
    return true;
}

int main() {
    cin >> n >> m;  // 输入点的个数和边的个数
    for (int i = 0; i < m; i++) {
        int a, b;
        cin >> a >> b;
        g[a].push_back(b);  // 添加边 (a, b)
        in_degree[b]++;  // b 的入度加 1
    }

    if (topological_sort()) {
        cout << "拓扑排序结果:";
    } else {
        cout << "图中存在环!";
    }

    return 0;
}
 

http://www.yayakq.cn/news/374431/

相关文章:

  • 石家庄整站优化技术做物流哪个网站推广好
  • 深圳外贸网站怎么建新公司注册资金多少较好
  • 安阳网站建设优化渠道wordpress被挂马
  • 网站推广活动方案公司网页设计模板
  • 找人做海报在什么网站找济南网站建设小程序开发
  • 重庆奉节网站建设公司哪家专业展厅设计素材网站
  • 医院做网站的意义wordpress 实战视频教程
  • 建筑培训网站有哪些承德网站建设有限公司
  • 重庆智能网站建设企业千阳做网站
  • 自己做的网站微信pc端显示乱码wordpress默认密码忘记
  • 国内做网站wordpress调用最新评论
  • 企业网站建设官网wordpress怎么给会员加上期限
  • 上海网站排名公司苏州建站模板厂家
  • 硬盘做网站空间江西移动网站
  • 建设厅网站上人员怎么导出网页设计与制作教程电
  • 网站快速排名方法wordpress 父分类名称
  • 深圳做网站哪个好中国古建筑网站
  • 做系统之前的网站怎样做心理咨询网站
  • 我有网站 怎么做淘宝推广上海发布公众号下载安装
  • 微信做网站网站音乐网站的音乐列表如何做
  • 东莞公司建站模板湖北营销型网站建设公司
  • 怎么做网站互换链接橘子建站是什么
  • 徐州seo网站推广怎么创业做电商
  • 网站建设的方法有四种菏泽网站建设信息
  • 临沂网站建设那家好我国科技发展动态最新消息
  • 企业还做网站吗seo工作室
  • 搬家网站建设思路四川城乡建设部网站
  • 天长哪个广告公司做网站邹平网站建设公司报价
  • 怎么做招聘网站赚钱自己做的网站如何在百度搜到
  • 山东省建设厅电工证查询网站vue做单页面网站