拓扑排序
2013-06-24 16:08
106 查看
拓扑排序是对有向无环图的一种排序。表示了顶点按边的方向出现的先后顺序。如果有环,则无法表示两个顶点的先后顺序。
在现实生活中,也会有不少应用例子,比如学校课程布置图,要先修完一些基础课,才可以继续修专业课。
一个简单的求拓扑排序的算法:首先要找到任意入度为0的一个顶点,删除它及所有相邻的边,再找入度为0的顶点,以此类推,直到删除所有顶点。顶点的删除顺序即为拓扑排序。
很容易得到拓扑排序的伪代码:
void TopSort(Graph g)
{
for (int i=0; i<vertexnum; i++)
{
vertex v = FindZeroIndegree(g);
if (v is not vertex)
cout <<"the graph has cycle"<<endl;
cout << v ;
foreach vertex w adjacent to v
w.indegree--;
}
}
地址:http://blog.csdn.net/midgard/article/details/4101025
在现实生活中,也会有不少应用例子,比如学校课程布置图,要先修完一些基础课,才可以继续修专业课。
一个简单的求拓扑排序的算法:首先要找到任意入度为0的一个顶点,删除它及所有相邻的边,再找入度为0的顶点,以此类推,直到删除所有顶点。顶点的删除顺序即为拓扑排序。
很容易得到拓扑排序的伪代码:
void TopSort(Graph g)
{
for (int i=0; i<vertexnum; i++)
{
vertex v = FindZeroIndegree(g);
if (v is not vertex)
cout <<"the graph has cycle"<<endl;
cout << v ;
foreach vertex w adjacent to v
w.indegree--;
}
}
地址:http://blog.csdn.net/midgard/article/details/4101025
相关文章推荐
- 数据结构学习_图(1)拓扑排序
- 图论算法——拓扑排序
- 拓扑排序(链表实现,未测试)
- poj 1094(拓扑排序)
- zoj 1060 || poj 1094 Sorting It All Out(拓扑排序)
- 拓扑排序
- 数据结构(C语言版)规范代码之图(邻接表的拓扑排序)
- 拓扑排序之四
- 拓扑排序
- Toposort(拓扑排序)
- 10305 - Ordering Tasks(****)拓扑排序
- 图的遍历、拓扑排序、最短路径算法
- poj 3683 2-SAT 拓扑排序输出
- POJ-1904 Sorting It All Out 拓扑排序
- poj1094Sorting It All Out(拓扑排序)
- HDU-4324 Triangle LOVE 拓扑排序
- 图的遍历、拓扑排序、最短路径算法
- poj 1094 拓扑排序
- 拓扑排序
- 拓扑排序