题目描述学生在选修课程时,往往会要求先修一些前置课程。例如学习大数据原理,需要先修计算机导论、 *** 作系统、数据结构等课程,学习大数据技术应用,还要掌握一门面向对象程序设计语言、数据库、计算机网络、WEB开发等知识。因此,需要为学生提供先修课程指引。
输入
现在用一个有向图表示各门课程之间的先修和后修关系,要求对有向图进行拓扑排序,生成拓扑有序序列。该序列作为学生先修课程的指引。
–算法说明–
假设用邻接矩阵表示有向图,拓扑排序过程如下
1、在有向图中选一个没有前驱的顶点,且输出该顶点
a)提示:若第i个顶点没有前驱,则邻接矩阵中的第i列全为??。
2、从图中删除该顶点和所有以它为尾的弧
a)提示:删除第i个顶点的弧,即将第i行全部设为??
3、重复步骤1和2,直到所有顶点输出为止
–程序要求–
必须通过拓扑排序算法来生成拓扑有序序列。 不允许使用第三方对象或函数实现本题的要求第一行输入t表示有t门课程,即有向图有t个顶点,顶点编号对应数组下标从0开始
输出
接着输入t行,每行t个数据,表示邻接矩阵,每行数据之间用单个空格隔开输出1行,表示拓扑有序序列 每行输出数据之间用单个空格隔开,末尾数据后面无空格
样例输入5
样例输出
0 1 0 1 1
0 0 1 1 0
0 0 0 0 1
0 0 1 0 0
0 0 0 0 00 1 3 2 4
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)