问答题
设有向图以邻接矩阵adj表示,每个顶点的入度用数组nodein存储,已知adj和nodein。请写出对该图进行拓扑排序的算法。【中国海洋大学2007十(15分)】
【正确答案】正确答案:首先将nodein中入度为0的顶点(设顶点信息就是顶点编号)入栈s。当栈不空时,做:(1)退栈,退栈元素是拓扑排序的元素,用i表示;(2)将邻接矩阵adj第i行的所有非0元素(adj[i][j])置0,同时将nodein[j]一。若nodein[j]=0,则将顶点j入栈;(3)如栈不空,转(1)。若栈空,且出栈顶点数等于图的顶点数,则拓扑排序成功,否则拓扑排序失败。
【答案解析】