拓扑排序
来源:互联网 发布:广电直播软件 编辑:程序博客网 时间:2024/06/06 01:21
在大学里面,我们要学习很多种类的课程,其中有一些课程必须以另一种课程为基础,我们怎么样安排课程才能保证学每一门课的时候它的前驱课程都上过?
要保证课程不会发生冲突(每一门课都必须安排在它的前驱课程之后),就要找出最前面的课程,安排这些课程先上。
如果我们用结点表示课程任务,箭头表示先后关系,那么我们可以得一个有向图。我们怎么才能将这些课程排成一个序列呢?这个序列要保证箭头左边的点不会出现在箭头右边点的前面。
解决的办法其实很简单
1、在有向图中选一个没有前驱的顶点且输出之。
2、从图中删除所有以它为尾的弧。
3、重复上述两步,直到全部顶点已经输出,或者是当前图中不存在无前驱的顶点为止。后一种情况则说明图中有环存在。
具体例子看链接:hdoj 1285,代码加解释!
有矩阵,邻接表,队列,三种写法!
1 0
- 拓扑排序
- 拓扑排序
- 拓扑排序
- 拓扑排序
- 拓扑排序
- 拓扑排序
- 拓扑排序
- 拓扑排序
- 拓扑排序
- 拓扑排序
- 拓扑排序
- 拓扑排序
- 拓扑排序
- 【拓扑排序】
- 拓扑排序
- 拓扑排序
- 拓扑排序
- 拓扑排序
- NPOI操作Excel 005:写入空Excel(Winform版)
- 51 N-Queens
- 内部存储的读操作及使用API获得路径
- 指向数组的指针
- Objective-C入门教程——Done!
- 拓扑排序
- [C++]Remove Duplicates from Sorted List 从已排序的链表中移除重复元素
- windons 下如何使用c compiler加cython 加速 word2vec!!!
- 这次带来的小程序是:确定一个字符串有多少个单词,然后最长单词和最短单词有哪些
- 通知
- c++返回引用和返回对象的区别
- 阿里天池大数据竞赛
- PHP无限多级菜单,感觉其他的都满足不了我的要求
- [笔记][Java7并发编程实战手册]3.7 并发阶段任务中的阶段切换phaser