问答详情
源自:4-6 图的编码实战-最小生成树之克鲁斯卡尔算法(二)

集合的合并问题

else if (nodeAInSetLabel != -1 && nodeBInSetLabel != -1 && nodeAInSetLabel != nodeBInSetLabel)    //AB都在集合中,但不属于同一集合
  {
   if (nodeAInSetLabel > nodeBInSetLabel)
   {
    int temp = nodeAInSetLabel;
    nodeAInSetLabel = nodeBInSetLabel;
    nodeBInSetLabel = temp;
   }
   mergeNodeSet(nodeSets[nodeAInSetLabel], nodeSets[nodeBInSetLabel]);   //将B集合合并到A集合中
   for (int k = nodeBInSetLabel; k < (int)nodeSets.size() - 1; k++)      //销毁B集合
   {
    nodeSets[k] = nodeSets[k + 1];                                    //B集合后集合都向前移动一个位置
   }
  }

提问者:我不要我不要 2018-12-17 14:39

个回答

  • 我不要我不要
    2018-12-17 14:39:49

    顶顶顶