Hi, this should be working, where is the problem?

const int INF=999999;

int n=6;
int weights[6][6];
int parent[6];
int idistance[6];
int rec[6];

struct lesst{
        bool operator()(const int&a,const int&b){
                return (idistance[a]>idistance[b]);
        }
};

int prim(int s){
        int u,v,i;
        priority_queue<int,vector<int>,lesst>Q;
        idistance[s]=0;
        Q.push(s);
        for(i=0;i<n;++i){
                if(i==s)continue;
                idistance[i]=INF;
                parent[i]=-1;
                Q.push(i);
        }
        while(!Q.empty()){
                u=Q.top();
                rec[u]=1;
                Q.pop();
                for(v=0;v<n;++v){
                        if(weights[u][v]==0);
                        else if(!rec[v] && weights[u][v]<idistance[v]){
                                parent[v]=u;
                                idistance[v]=weights[u][v];
                        }
                }
        }
        return idistance[s];
}

-- 
You received this message because you are subscribed to the Google Groups 
"Algorithm Geeks" group.
To post to this group, send email to algogeeks@googlegroups.com.
To unsubscribe from this group, send email to 
algogeeks+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/algogeeks?hl=en.

Reply via email to