本文共 1017 字,大约阅读时间需要 3 分钟。
#include#include #include #include #include using namespace std;const int maxNum = 101;int a[maxNum][maxNum];int N;int ind;int father[maxNum];int rank[maxNum];class node{public: int m_id; int m_distance; node(int id,int distance):m_id(id),m_distance(distance) {} friend bool operator < (const node &a,const node &b)//从小到大 { return a.m_distance >b.m_distance; }};void init(){ for (int i=0;i rank[y]) father[y] = x; else { father[x] = y; if(rank[x]==rank[y]) ++rank[y]; } }}bool judge(int x,int y){ if(findSet(x) == findSet(y)) return true; return false;}typedef struct edge { int value; int i; int j;}edge;edge edges[maxNum*maxNum/2];int cmp(const void *a,const void *b )//从小到大排序{ return ((edge*)a)->value - ((edge*)b)->value;}int primQueue(){ bool A[maxNum]; memset(A,0,sizeof(A)); priority_queue q; //q.push(node(0,0)); A[0] = true; for (int i=1;i i) //for Kruskal { edges[ind].i = i; edges[ind].j = j; edges[ind].value = a[i][j]; ++ind; } } } cout< <
转载地址:http://pdeti.baihongyu.com/