专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅
当每个任务有前后置关系时,需要找到一种满足前后置关系的路线,将任务完成。 如果将每个任务看成一个节点,任务之间的前后置关系表示为有向图时,这种路线顺序叫做为图进行拓扑排序。也叫关键路径分析。 这里的图用邻接矩阵法表示,算法的关键是: 1 找到一个没有后继的顶点 2 在图中删除它,放入结果数组中 3 重复 步骤 1 ,步骤 2 直到图中没有多余的节点。 如果图中出现环装结构,则算法无法进行,因为此时任务之间循环成为前置。 关于邻接矩阵法请参见:Graph 图-邻接表法。 要注意的是:满足前后置关系的路径可能不止一条。这里仅仅得到其中的一条。 关键API: int [阅读全文] [PDF]
查看Castle的代码,在Castle.Core中内部的数据结构采用图,排序使用的拓扑排序算法: 对于一条有向边(u,v),定义u<v;满足所有这样条件的结点序列称为拓扑序列。拓扑排序就是求一个有向图的拓扑序列的算法。一个有向图顶点的拓扑序列不是惟一的。并不是任何有向图的顶点都可以排成拓扑序列,有环图是不能排的。例子:比如排课问题,比如士兵排队问题等。拓扑排序在实际生活中和算法中都有很大的应用。比如要排一下几门课程的先后次序,我们可以把课程抽象成结点,把什么课是什么课的基础抽象成边,那么该图的一个拓扑序列就是这些课的一个可行的先后次序。各种语言的编译 [阅读全文] [PDF]
这是一个拓扑排序的程序,新手朋友多学习一下,整理,www. . //拓扑排序 #include<stdio.h> #include<stdio.h> #defineMAX_VERTEX_NUM50 #defineSTACK_SIZE50 typedefstructArcNode{ intadjvex;//顶点在数组中的位置 structArcNode*nextarc;//下一条弧的指针 }ArcNode;//邻接表结点 typedefstructVNode{ intdata;//顶点信息 ArcNode*firstarc;//第一条依附该 [阅读全文] [PDF]
1 共3条 分1页