超好理解的图论算法——拓扑排序

所谓拓扑排序也就是有向无环图,它可以检验一个有向图中是否存在回路,具体的操作方法就是

(1)在有向图中选一个没有前驱的顶点并且输出
(2)从图中删除该顶点和所有以它为尾的弧,即删除所有与它有关的边。
(3)重复上述两步,直至全部顶点均已输出;或者当图中不存在无前驱的顶点为止。

借用博主的图片理解拓扑排序https://blog.csdn.net/qq_40693171/article/details/100536278?

  • 1:删除1或2输出
    在这里插入图片描述
  • 2:删除2或3以及对应边
    在这里插入图片描述
  • 3:删除3或者4以及对应
  • 在这里插入图片描述
  • 4:重复以上规则步骤
    在这里插入图片描述
  • 具体代码如下
void topo()
{
    queue<int> q;
    for(int i=1;i<=vertexnum;i++)
    {
        if(indegree[i]==0)
        {
            q.push(i);
        }
    }
    while(!q.empty())
    {
        int temp=q.front();
        cout<<vertex[temp]<<" ";
        cnt++;
        q.pop();
        for(int i=1;i<=vertexnum;i++)
        {
            if(edge[temp][i]!=0)
            {
                indegree[i]--;
                if(indegree[i]==0)
                    q.push(i);
            }

        }
    }
    if(cnt<vertexnum)
        cout<<"有回路"<<endl;
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Abaqus是一种广泛使用的有限元分析软件,用于解决结构与材料力学、热传导、动力学、电磁学等领域的问题。它具有强大的建模和分析能力,受到学术界、工程界以及科研机构的广泛关注和应用。 要下载Abaqus的好详细教程,你可以尝试以下几种方式: 1. 官方网站:Abaqus的开发公司Dassault Systèmes为用户提供了官方网站,其中包含了丰富的教程资料以及软件的下载链接。你可以访问官方网站,按照指引进行教程和软件的下载。 2. 学术资源平台:一些学术资源平台,如ResearchGate、Academia等,上面有很多学者和工程师分享的Abaqus教程资源,你可以在这些平台进行搜索,找到相应的教程并进行下载。 3. 在线论坛和社群网站:Abaqus有着庞大的用户群体,许多用户在各种论坛和社群网站上分享了自己的教程和学习心得。你可以在这些平台上搜索Abaqus教程相关帖子,查找并下载你所需的教程。 4. 专业培训机构和学术机构:一些培训机构和学术机构会提供Abaqus的培训课程,也会提供相应的教程资料。你可以咨询这些机构,了解是否有相关教程的下载服务或者购买服务。 总之,下载Abaqus的详细教程可以通过访问官方网站、学术资源平台、在线论坛和社群网站,以及咨询专业机构等途径进行。希望你能找到适合的教程资源,顺利学习和应用Abaqus软件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值