小弟请教一道题 急用 恳请各位大侠指点!
题目如下:
要求输入字符串作课程名,一回车为界,以"#"作为课程名输入的结束.并实行自动编号.然后输入课程编号的先序后序对作为有向图中的弧,实现该有向图的拓扑排序,从而生成一个教学计划,并按学期分开. 调试的输入数据以文件形式输入40门课程.
小弟在这里先行谢过了!!!
你的题目看不懂!!!
有向图中的弧是什么意思,应该是边吧?这个程序建议使用邻接矩阵,要是用临界表的话,找无前驱顶点有点复杂的说,把课程对象存一个数组中,用数组下标在邻接矩阵中表示顶点就行了,然后有通路为“1”,无通路为“0”;拓扑排序时迭代查找矩阵列全为“0”的顶点(即没有前驱的顶点),然后找到一个这样的顶点后把其作为矩阵的行把该行的全部元素都为“0”(删除这个顶点所有的边);然后再进行下一次查找,一共进行40次(40门课)中间如果没有查到列全为“0”的顶点则:图为连通图,拓扑排序失败。
PS:初步设想,算法有待改进。
PS2:本人不是高手,望各位高手指教。