Kruskal's Algorithm

This commit is contained in:
2024-06-30 17:17:13 +05:30
parent 1b3eaf2f8d
commit 266993db6e

View File

@@ -0,0 +1,84 @@
#include <bits/stdc++.h>
using namespace std;
bool comp(vector<int>& v1 , vector<int>& v2 ){
return v1[0] > v2[0];
}
class Solution{
public:
class dsu{
public:
vector<int> parent;
vector<int> size;
dsu(int sz){
parent.resize(sz);
size.resize(sz);
for(int i = 0 ; i < sz ; i++ )
parent[i] = i , size[i] = 1;
}
int find(int n){
if( parent[n] == n ) return n;
return parent[n] = find( parent[n] );
}
int find_iterative( int n ){
while( parent[n] != n ){
n = parent[n];
}
return n;
}
void unite(int a, int b){
int par_a = find(a);
int par_b = find(b);
if( par_a == par_b )
return;
if( size[par_a] < size[par_b] ) swap(par_a, par_b);
size[par_a] += size[par_b];
parent[par_b] = par_a;
}
bool isSame(int a , int b){
return find(a) == find(b);
}
};
//Solution function template...
int maxNumEdgesToRemove(int n, vector<vector<int>>& edges) {
sort( edges.begin() , edges.end() , comp );
}
};
int main( int argc, char* argv[] ){
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
Solution sol;
//solution function call...
//Extract result and print the solution..
return 0;
}