一道严蔚敏<数据结构>习题集里的相关于拓扑排序的习题,我连一点思路都找不到,怎么办?求救!
问题描述:
大学的每个专业都要制定教学计划。假设任何专业都有固定的学习年限,每学年各含两个学期,每学期的时间长度和学分上限值均相等。每个专业开设的课程都是确定的,而且课程在开设时间的安排必须满足先修关系。每门课程有那些先修课程是确定的,可以有任意多门,也可以没有。每门课恰好占一个学期。试在这样的前提下设计一个教学计划编制程序。
基本要求:
1)输入参数包括:学期总数,一学期的学分上限,每门课的课程号(固定占3位的字母数字串)、学分和直接先修课的课程号;2)允许用户指定下列两种编排策略之一:一是使学生在各学期中的学习负担尽量均匀,二是使课程尽可能地集中在前几个学期中;若根据给定的条件问题无解,则报告适当的信息,否则将教学计划输出到用户指定的文件中,格式自行设计。
其实我剩下的只是编排策略中策略一的实现,我一点思路都没有。如果说是个拓扑排序的问题,但也没有办法啊,拓扑排序只能找出一个序列,不能找出所有的序列,就算找出,又如何给各个学期赋以哪几门课,以使学生的负担均匀(平均学分平衡)。总之我实在是没有办法了,究竟用什么算法呢?有谁做过或者哪位高手请给以指教。谢谢。