问答详情
源自:4-2 图的编码实战-最小生成树之普利姆算法(二)

while循环最后一句

这里为什么要将m_pNodeArray[nextNodeIndex].m_bIsVisited = true;啊?如果将传入进来的顶点相连最小边的另一个顶点标记为已访问了,下一次循环的条件判断进不去,岂不是没法继续遍历了?这里应该是m_pNodeArray[temp].m_bIsVisited = true;吧?

提问者:开_开 2016-10-21 14:17

个回答

  • 慕姐3585284
    2016-10-21 15:42:32
    已采纳

    标记的是“边”,而不是“顶点”。

    每一次选出最小边,然后要把最小边标记为已选择,下一次就会选择没有选过的边的最小边。

    其实这一句可以省略的,因为在getMinEdge中,已经把选择出来的最小边标记过了。