先修课程指引

先修课程指引,第1张

先修课程指引
题目描述

学生在选修课程时,往往会要求先修一些前置课程。例如学习大数据原理,需要先修计算机导论、 *** 作系统、数据结构等课程,学习大数据技术应用,还要掌握一门面向对象程序设计语言、数据库、计算机网络、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 0

样例输出

0 1 3 2 4

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5706280.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存