I 设计题目: 示例数据:输入:学期数:5,课程数:12,课程间的先后关系数:16,课程的代表值:v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12
课程间两两间的先后关系:v1 v2,v1 v3, v1 v4,v1 v12,v2 v3,v3 v5,v3 v7,v3 v8,v4 v5, v5 v7,v6 v8,v9 v10, v9 v11 , v9 v12,v10 v12,v11 v6 输出:第 1 学期应学的课程:v1 v9 第 2 学期应学的课程:v2 v4 v10 v11 第 3 学期应学的课程:v3 v6 v12 第 4 学期应学的课程:v5 v8 第5学期应学的课程:v7 I 一 需求分析 1
1 引言 通常,这样的线性序列称为满足拓扑次序(Topological Order)的序列,简称拓扑序列
简单的说,由某个集合上的一个偏序得到该集合上的一个全序,这个操作称之为拓扑排序
离散数学中关于偏序和全序的定义: 若集合X 上的关系是R,且R 是自反的、反对称的和传递的,则称R 是集合X 上的偏序关系
设R是集合X上的偏序(Partial Order),如果对每个x,y属于X必有xRy 或 yRx,则称R 是集合X 上的全序关系
比较简单的理解:偏序是指集合中只有部分成员可以比较,全序是指集合中所有的成员之间均可以比较
一般应用:拓扑排序常用来确定一个依赖关系集中,事物发生的顺序
例如,在日常工作中,可能会将项目拆分成A、B、C、D 四个子部分来完成,但A 依赖于B 和D,C 依赖于D
为了计算这个项目进行的顺序,可对这个关系集进行拓扑排序,得出一个线性的序列,则排在前面的任务就是需要先完成的任务
2 拓扑排序的了解 ①
问题的描述 在AOV 网中为了更好地完成工程,必须满足活动之间先后关系,需要将各活动排一个先后次序即为拓扑排序