拓扑排序及模板
来源:互联网 发布:二手交易网站源码php 编辑:程序博客网 时间:2024/05/20 18:48
一种拓扑排序算法。该算法是简单而直观的,实质上属于广度优先遍历,因此称为广度优先拓扑排序算法。该算法包含下列几个步骤:
[1] 从有向图中找一个没有前趋的结点v,若v不存在,则表明不可进行拓扑排序(图中有环路),结束(不完全成功);
[2] 将v输出;
[3] 将v从图中删除,同时删除关联于v的所有的边
[4] 若图中全部结点均已输出,则结束(成功),否则转[1]继续进行
下面以杭电1285这道题目为例写出模板:点击打开链接
#include <iostream>using namespace std;int map[502][502], indegree[502], m, n, pur[502];void topsort(){int i, j, k=1;for(i=1; i<=n; i++){for(j=1; j<=n; j++){if(indegree[j]==0){indegree[j]--;pur[k++] = j;for(int x=1; x<=n; x++)if(map[j][x])indegree[x]--;break;}if(j>n){cout<<"存在环"<<endl;return ;}}}}void main(){int i, j;while(cin>>n>>m){memset(map,0,sizeof(map));memset(indegree,0,sizeof(indegree));int a, b;for(i=1; i<=m; i++){cin>>a>>b;if(!map[a][b]){map[a][b] = 1;indegree[b]++;}}topsort();for(i=1; i<=n; i++)if(i!=n)cout<<pur[i]<<" ";elsecout<<pur[i]<<endl;}}
- 拓扑排序及模板
- 拓扑排序及模板
- hdu1285及拓扑排序模板
- 【模板】拓扑排序 及 练习
- 拓扑排序的模板
- 拓扑排序模板
- 拓扑排序模板
- 拓扑排序模板
- 拓扑排序-模板
- 拓扑排序toposort 模板
- 拓扑排序模板
- 拓扑排序模板
- 拓扑排序算法模板
- 拓扑排序【模板】
- 拓扑排序模板
- 拓扑排序模板
- 拓扑排序模板
- 拓扑排序模板
- POJ 1094 Sorting It All Out 拓扑排序
- Extjs PagingToolbar 当前页设置 PagingToolbar.js
- Ogre3D基础教程三
- android listview跳色
- JSP 编码之中文乱码解决方案
- 拓扑排序及模板
- searchbar自动匹配搜索内容
- C++运算符重载
- Android 开发游戏中的SurfaceView,Callback,SurfaceHolder
- C++的static关键字 作者:韩耀旭
- C++ 内存分配学习笔记
- 进程管理违反android设计本意,是可笑的傻做法?
- android ListView的美化涉及到的一些属性
- string类的复制控制函数和各类重载函数