图的拓补排序(TopologicalSort)算法在邻接表与邻接矩阵结构下实现

本文记录了拓补排序算法在邻接表和邻接矩阵结构下的具体实现,包括算法描述、步骤以及代码示例。通过计算顶点的入度,选择没有前驱的节点进行输出,并不断更新图的状态,直到所有节点被输出或发现图中存在环,终止排序。
摘要由CSDN通过智能技术生成

如题 自用笔记 如有错误欢迎及时指正

拓补排序需要知道每个顶点的入度情况  求出度入度的方法以及所用数据结构定义见下文

两种存储结构下求有向图顶点出度与入度_kollektor的博客-CSDN博客

https://blog.csdn.net/weixin_46127065/article/details/120631629


算法描述

*已知一个AOV网(用顶点表示活动的DAG(有向无环)图)*

step1.从AOV网中选择一个没有前驱的结点(入度为0)并输出。

step2.从AOV网中删除所有以该顶点为起点的有向弧,同时修改弧对应的顶点入度。

step3.重复step1.与step2.直到所有结点均已输出,或图中不存在没有前驱的结点,结束。


算法实现

借助一个辅助栈栈S来暂存过程中的顶点

(邻接表结构采用入度域与出度域,邻接矩阵结构采用两个入度出度数组存储)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值