试回答下列关于拓扑排序算法的问题。 (1)算法中利用一个栈保存入度为0的顶点,其目的是什么? (2)若在算法中将队列改为栈,相应地将入、出栈及判栈空操作改为入、出队列和判队列空操作,其他部分不变,是否依然能够得到拓扑排序时正确结果?
(1)每次选择入度为0的顶点时,只需要做出栈操作就可以了,减少找入度为0的顶点的时间,提高排序的效率。(2)每次选人度为零的顶点时,只需做出栈(队)操作即可。所以把栈换成队列同样可以实现。
试回答下列关于拓扑排序算法的问题。 (1)算法中利用一个栈保存入度为0的顶点,其目的是什么? (2)若在算法中将队列改为栈,相应地将入、出栈及判栈空操作改为入、出队列和判队列空操作,其他部分不变,是否依然能够得到拓扑排序时正确结果?
(1)每次选择入度为0的顶点时,只需要做出栈操作就可以了,减少找入度为0的顶点的时间,提高排序的效率。(2)每次选人度为零的顶点时,只需做出栈(队)操作即可。所以把栈换成队列同样可以实现。