这里为什么要将m_pNodeArray[nextNodeIndex].m_bIsVisited = true;啊?如果将传入进来的顶点相连最小边的另一个顶点标记为已访问了,下一次循环的条件判断进不去,岂不是没法继续遍历了?这里应该是m_pNodeArray[temp].m_bIsVisited = true;吧?
标记的是“边”,而不是“顶点”。
每一次选出最小边,然后要把最小边标记为已选择,下一次就会选择没有选过的边的最小边。
其实这一句可以省略的,因为在getMinEdge中,已经把选择出来的最小边标记过了。