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

现在建设一个网站需要什么技术广告公司名字大全最新

现在建设一个网站需要什么技术,广告公司名字大全最新,网站开发培训流程,高级网络营销师有向无环图是拓扑排序 拓扑排序将图中所有的顶点排成一个线性序列,使得所有的有向边均从序列的前面指向后面。 拓扑排序使用深度优先搜索来实现,图中有环则无法进行拓扑排序 一个有向图,如果图中有入度为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.15wanjia.com/news/172122.html

相关文章:

  • thinkphp做网站有什么好处您网站建设
  • 濮阳家电网站建设本地主机做网站
  • 公司网站制作门槛做背景音乐的版权网站
  • 自学网站建设要多久郑州网站推广技术
  • 企业网站开发设计哪里建网站好
  • 网站色调选择如何做优秀的视频网站设计
  • 兰山区网站建设推广成绩查询网站怎么做
  • 如何建设简易网站如何组做网站
  • 贵州省都匀市网站建设网站seo内链建设
  • 网站怎么做数据转移5988创业商机网
  • 网页是不是网站网站关键词收录查询
  • 西安建设科技专修学院网站营销型企业网站建设的基本原则是
  • 哈尔滨网站优化咨询网站策划书怎么做的美观
  • 个人商城网站制作费用深圳网站搜索排名
  • 用于建设教学网站的建站工具有哪些特点360建筑网如何注销账号
  • 学校网站建设评估两江新区建设管理局网站
  • 网站怎么快速收录网页设计代码链接怎么写
  • 全球网站排行榜中国网站的建设
  • 金塔精神文明建设网站做评测好的视频网站
  • 福安做网站聊城网站建设推广
  • 酒店网站建站网站编程工资多少
  • asp网站 证书抖音代运营商
  • 惠州网站建设公司哪家好明年做那个网站致富
  • 江门网站建设联系电话wordpress 开启rss
  • 网站开发软件工程师做网站是哪个专业
  • 湖南建设长沙网站建设价格辽宁大连网站建设
  • 仿建网站常州网站建设公司平台
  • 阿里云二级域名网站怎么建设做网站和做阿里巴巴
  • 教程网站后台密码全屋定制网
  • 郴州网站seo优化深圳生活免费信息网