回 帖 发 新 帖 刷新版面

主题:编程 选课系统

各位大神,帮帮忙啊!急求!
     计算机系有很多课程,比如数学分析、高等代数、计算机导论、C语言程序设计、面向对象程序设计、数据结构、算法设计与分析、数理逻辑、汇编程序设计、编译原理等等。其中有些课程是需要前面一些课程的基础,比如要修数据结构这么课必须先修C语言程序设计。
    Input
  输入的第一行是一个正整数N(0 < N <= 500),表示计算机系总共需要修的课程的数目。课程从1-N编号。
  输入的第二行包括N个课程的名字,每个课程名字由大写字母或小写字母或下划线组成,最长不超过40个字符,每两个相邻的名字用空格隔开。
  输入的第三行到N+2行数据描述课程之间的依赖关系。第i+2行描述第i个课程的依赖关系,格式如下:
  Mi m1 m2 m3 ... mMi
  其中Mi表示要修第i个课程共需要先修Mi个课程,后面跟随着Mi个课程编号,编号从小到大排列。

Output
  输出N个课程的名字表示您建议的顺序,如果存在多个序列则您只需要输出其中任意一个。如果没有办法找到这样的序列则输出"Impossible!"(不需要输出引号,但是要输出感叹号,注意大小写)。
   题目如上,请用C语言,最好有注释,我先在这谢过了啊!


回复列表 (共1个回复)

沙发

这个用生成树可行么?
出现回路意味着Impossible!
不知道这个思路是否可行,仅供参考,没时间写代码。

我来回复

您尚未登录,请登录后再回复。点此登录或注册