拓扑排序算法(思路、代码加详细注释)

本文详细介绍了拓扑排序的基本思路,分为三个步骤进行阐述,并提供了带注释的代码实现,帮助读者深入理解拓扑排序算法。
摘要由CSDN通过智能技术生成

思路
1.创建一个队列q,将入度为0的顶点全部加入队列。
2.当队列不为空时,取出首结点,[访问输出],遍历其所有后继顶点,另后继结点的入度减一,判断若入度减一后为0,则将这后继顶点加入队列。再清除首结点从它出发的边,即后继结点.
3. 步骤2结束意味着队列为空。判断加入拓扑序列的顶点数和图的顶点数n是否相等,若相等则证明拓扑排序成功,和该图是有向无环图。

有向无环图:如果有向图的任意顶点都无法通过一些边回到自身,则这个图称为有向无环图

代码加注释

vector<int> G[MAXV];//邻接表,存储每个顶点所指向的后继顶点下标
int n,inDegree[MAXV];//顶点数,每个顶点的入度,下面的结点和顶点的含义相同
bool topologicalSort(){
   
	int num
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值