拓扑排序
目录:
拓扑排序
拓扑排序的若干种实现方式
DFS
邻接表+暴搜
BFS+队列
BFS+优先队列
BFS+优先队列+贪心思想
拓扑排序的题目
一.拓扑排序:
什么是拓扑排序?(参考维基百科)
拓扑排序:在图论中,有一个有向为无回路图(DAG)的顶点组成的序列,当且仅当满足下列条件时,称为该图的一个拓扑排序(Topological sorting).
1.每个顶点出现且只出现一次
2.若A在序列中排在B的前面,则图中不存在从B到A的路径
亦可定义:
拓扑排序是对有向无回路图的顶点的一种排序,它使得如果存在一条从顶点A到顶点B的路径,那么在排序中B出现在A的后面。
在实际的应用:有向无回路图描述的是事件发生的先后顺序,可以这样定义,如果事件A在事件B前面发生:那么可以连一条从A到B的有向边。那么在进行玩拓扑排序后,A一定在B的前面。
举个例子:某个人早上起来穿衣服的过程
他必须先穿好某些衣服,才能在穿其他的衣服(如先穿袜子,在穿鞋),其他的衣服则可以按任意次序穿戴(如袜子与裤子