diff --git a/Graphs/Minimum_Spanning _Trees/Kruskal'sAlgo.cpp b/Graphs/Minimum_Spanning _Trees/Kruskal'sAlgo.cpp new file mode 100644 index 00000000..bdc489d2 --- /dev/null +++ b/Graphs/Minimum_Spanning _Trees/Kruskal'sAlgo.cpp @@ -0,0 +1,93 @@ +#include +using namespace std; + +#define mod 1000000007 +#define pb push_back +#define mp make_pair +#define ft first +#define sc second +#define PI 3.14159265358979323 +#define debug(x) cout<<"Case "<=b; i--) +#define sync ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); +typedef long long int ll; +typedef long double ld; +typedef unsigned long long int ull; +typedef vector vi; +typedef vector vll; +typedef pair pii; +typedef pair pll; +typedef vector < pii > vpii; +typedef vector < pll > vpll; +typedef vector vs; + +//Handle:cyber_rajat +class Edge +{ +public: + int source; + int destination; + int weight; +}; + +bool compare(Edge a,Edge b) //sorts on basis of weight +{ + return a.weight>N>>E; + Edge*input=new Edge[E]; + for(int i=0;i>input[i].source; + cin>>input[i].destination; + cin>>input[i].weight; + } + + Kruskals(input,N,E); + return 0; +} diff --git a/Graphs/Minimum_Spanning _Trees/PrimsAlgo.cpp b/Graphs/Minimum_Spanning _Trees/PrimsAlgo.cpp new file mode 100644 index 00000000..bb3b3a26 --- /dev/null +++ b/Graphs/Minimum_Spanning _Trees/PrimsAlgo.cpp @@ -0,0 +1,94 @@ +#include +using namespace std; + +#define mod 1000000007 +#define pb push_back +#define mp make_pair +#define ft first +#define sc second +#define PI 3.14159265358979323 +#define debug(x) cout<<"Case "<=b; i--) +#define sync ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); +typedef long long int ll; +typedef long double ld; +typedef unsigned long long int ull; +typedef vector vi; +typedef vector vll; +typedef pair pii; +typedef pair pll; +typedef vector < pii > vpii; +typedef vector < pll > vpll; +typedef vector vs; + +//Handle:cyber_rajat +int findMinVerix(int*weights,bool*visited,int N) +{ + int minVertix=-1; + for(int i=0;i + { //index parent + if(parents[i]<=i) // 0 -1 + cout<>N>>E; + int**Edges=new int*[N]; + for(int i=0;i>a>>b>>w; + Edges[a][b]=w; + Edges[b][a]=w; + } + Prims(Edges,N); + return 0; +}