早教吧 育儿知识 作业答案 考试题库 百科 知识分享

数据结构中关于图拓扑排序算法有个地方不太明白希望能得到解答我先把整个算法写下了吧StatusToplogicalSort(ALGraphG){//有向图G采用邻接表存储结构//若G无回路,则输出G的顶点的一个拓扑序

题目详情
数据结构中 关于图拓扑排序算法 有个地方不太明白 希望能得到解答
我先把整个算法写下了吧
Status ToplogicalSort(ALGraph G){
//有向图G采用邻接表存储结构
//若G无回路,则输出G的顶点的一个拓扑序列并返回OK,否则ERROR.
FindInDegree(G,indegree); //对各顶点求入度indegree[0...vernum-1]
InitStack(S);
for(i =0;inextarc){
k=p-->adjevex
if(!(--indegree[k])) Push(S,k);//若入度减为0,则入栈
(终于码字码到这句了 我理解的是k是p指向的i的一个临界点,如果这个邻接点经过
--indegree入度减为0 则入栈 但是如果没减为0呢 --indegree[k]还要执行吗 我理解他是个条件啊 可是依照拓扑排序的思路 是要把i的邻接点入度都减1的)
}
}后面代码就不打了 主要是这一点 希望能解答下
▼优质解答
答案和解析
我知道你哪里不明白了,你没看见上面的for循环,1,如果不为0,则不执行if了,但执行for循环.2,执行for循环的目的就是把所有的入度减1,减为0的入栈.