所谓的拓扑排序的核心就是在一个有向图中,如果存在边u 到v, 则排序后u一定要在v的前面。

其基本的排序思路如下所示:

示意图如上所示。我们对这个图进行拓扑排序。我们的基本思路为:

TopSort(G)

- 找到一个入度为0 的点(没有前节点),输出

- 删除与该点所有相连的边

-重复上述步骤知道所有点被explored

其执行步骤为

实际上我们也可以在拓扑排序中每一步找出度为0的点,即没有后继节点输出。不过最后要将得到的序列反序。

出度为0的节点一般叫做沉没节点(sink node)。下一篇文章我们会讲如何使用DFS来完成拓扑排序。 有向无环图才能进行拓扑排序。有环就不知道谁该排在前面了。

注:文中两幅示意图来自博客:

https://blog.csdn.net/lisonglisonglisong/article/details/45543451

拓扑排序- 基本思路相关推荐

  1. LeetCode 2192. 有向无环图中一个节点的所有祖先(拓扑排序)

    文章目录 1. 题目 2. 解题 1. 题目 给你一个正整数 n ,它表示一个 有向无环图 中节点的数目,节点编号为 0 到 n - 1 (包括两者). 给你一个二维整数数组 edges ,其中 ed ...

  2. 对给定的AOV网络,产生所有的拓扑排序结果,并进行解法的动态演示

    数据结构 课程实验报告 实验题目: 33题,对给定的AOV网络,产生所有的拓扑排序结果,并进行解法的动态演示. 实验学时:一周 实验日期: 实验目的:对给定AOV网络,产生所有的拓扑排序结果,并进行动 ...

  3. 拓扑排序:利用kahn算法。c++

    拓扑排序 拓扑排序要解决的问题是给一个图的所有节点排序.在一个有向无环图DAG中,我们将图中的顶点以线性的方式进行排序,对于有向边(u,v),确保u在v的前面,认为v依赖于u; 如果u到v有路径,u可 ...

  4. 拓扑排序Kahn算法

    拓扑排序 介绍 思路 操作过程 完美图解 代码模板 介绍 拓扑排序,整体是给出n个事件先后关系,来确定n个事件最终的先后关系 思路 很好理解 操作过程 我们可以理解成一个有向图如果x事件在y事件的前面 ...

  5. 算法提升:图的拓扑排序算法

    目录 概念 思路 代码 概念 拓扑序列:一些活动,其中某些活动必须在另一些活动完成之后才能开始,一定是无环的有向图,称为AOV网. 拓扑排序,其实就是对一个有向图构造拓扑序列的过程.构造时会有两个结果 ...

  6. C语言-AOV网与拓扑排序

    邻接表: 顶点下标查找函数(LocateVex) 创建有向图的邻接表(CreateDG) 邻接表打印函数(print) 拓扑排序(TopologicalSort) AOV网与AOE网: AOV网(Ac ...

  7. 带你了解有向无环图和拓扑排序

    写在前面 如果觉得有所收获,记得点个关注和点个赞,感谢支持. 今天遇到有向无环图的一些问题,感觉挺有意思的,而且这些问题的思路特点都差不多,所以想着记录一下.在图论中,如果一个有向图无法从某个顶点出发 ...

  8. 数据结构C++——拓扑排序

    数据结构C++--拓扑排序 文章目录 数据结构C++--拓扑排序 一.前言 二.拓扑排序的概念及作用 三.拓扑排序的实现 ①拓扑排序的实现原理 ②拓扑排序中FindInDegree()函数的实现 ③拓 ...

  9. HDU1811 Rank of Tetris 拓扑排序+并查集 OR 差分约束最短路+并查集

    题目链接 题意:就是给你一堆关系,看能不能排出个确定的顺序 做法: 1. 拓扑排序+并查集 应该很容易想到的一种思路,大于小于建立单向边.对于相等的呢,就把他们缩成一个点.就用并查集缩成一个点就行了 ...

最新文章

  1. 【廖雪峰python入门笔记】if语句
  2. 2010 .NET面试题整理之基础篇
  3. centos7怎么安装中文环境支持包
  4. 几个基本概念辨析:流敏感,路径敏感和上下文敏感
  5. HDU - 5692 Snacks(dfs序+线段树)
  6. r java_如何在R中使用JAVA写的程序包?
  7. 聊聊并发——生产者消费者模式
  8. 电信5g网络apn接入点_华为就5G网络设备禁令起诉瑞典邮政和电信管理局
  9. inception mysql 使用_mysql 审核引擎 goInception 的基本使用
  10. Android开发中Ant命令编译和APK签名的一些心得
  11. 以太网卡 及 以太网帧
  12. 针对RK3328平台搭建支持KVM的Linux环境
  13. dedecms织梦后台登录一直提示验证码错误
  14. Vue 下 ESLint 的 error 解决办法
  15. 2的0次方为什么等于1?
  16. ajax complete写法,JQuery ajaxComplete()用法及代码示例
  17. 注册表RootKey简写:HKCR, HKCU, HKLM, HKU, and HKCC
  18. SRS 简单高效的实时视频服务器
  19. java-根据url生成二维码
  20. 360和瑞星杀毒软件哪个好

热门文章

  1. 西安80坐标系转换工具
  2. 会声会影2020软件新增功能详情
  3. ARNOR: Attention Regularization based Noise Reduction for Distant Supervision Relation Classificatio
  4. c语言中错误为ffblk未定义,C - 错误没有定义和存储未知
  5. word中多级列表操作问题
  6. 多目标优化问题MOP
  7. Visual studio未能正确加载“Microsoft.VisualStudio.Editor.Implementation.EditorPackage”包
  8. 微信php背景音乐,微信公众平台添加背景音乐
  9. 异常Required request body is missing。
  10. MySQL之数据查询(多表查询)