设为首页 加入收藏

TOP

拓扑排序的原理和实现
2017-04-14 10:23:32 】 浏览:310
Tags:拓扑 排序 原理 实现

在图论中,由一个有向无环图组成的序列,只要满足下面两种情况则称为拓扑排序:



可以从这副图中发现,如果按照DFS的思想,那么其访问结点的结果为 5,2,3,1,0,4,但是如果是拓扑排序的话,访问结点的结果为5,4,2,0,1,3,类似于多叉树的BFS


拓扑排序可用来解决什么问题呢?比如说课程排序,编译依赖,类似凡是涉及到相关顺序的时间安排;还可以用来判断一幅有向图是否无环。


根据前面提供的思想,首先想到的就是BFS,但是需要在BFS的基础上进行判断,只有入度为0的结点才能加入到队列中,其中每访问一个结点,则将该结点的入度减一。(因为多叉树的结点不可能存在环,所以其的BFS就不用担心入度的问题)


如果是按照DFS的思想,则需要在等待迭代完结点的连接邻接点后再把当前结点压入栈中。


上面图的表现形式为邻接表,基本算法是用 BFSDFS 来实现的;


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Android 布局(线性布局、相对布.. 下一篇连续子数组的最大和

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目