From 6ae18dd181880ad1ffcd3523824ca31ad4654dfb Mon Sep 17 00:00:00 2001 From: Aayush Vyas <70998175+AayushVyasKIIT@users.noreply.github.com> Date: Mon, 30 Aug 2021 16:16:39 +0530 Subject: [PATCH] Delete dsu_path_compresssion.cpp --- data_structures/dsu_path_compresssion.cpp | 124 ---------------------- 1 file changed, 124 deletions(-) delete mode 100644 data_structures/dsu_path_compresssion.cpp diff --git a/data_structures/dsu_path_compresssion.cpp b/data_structures/dsu_path_compresssion.cpp deleted file mode 100644 index ad8bc231c..000000000 --- a/data_structures/dsu_path_compresssion.cpp +++ /dev/null @@ -1,124 +0,0 @@ -#include -#include - -using namespace std; - -//Disjoint set union -class DSU{ - private: - // p: keeps track of parent of i - // depth: tracks the depth of i - // setSize: size of each chunk(set) - // maxElement : max of each set, using maxElement[representative] - // minElement : min of each set, using minElement[representative] - vector p,depth,setSize,maxElement,minElement; - public: - // parameter : int n -> maximum number of items - DSU(int n){ - p.assign(n,0); - //initially all of them are their own parents. - for(int i=0;i root(representative) - return (p[i] = findSet(p[i])); - } - //union of 2 sets - void UnionSet(int i,int j){ - //check if both belongs to same set or not - if(isSame(i,j)){ - return; - } - - //we find the representative of the i and j - int x = findSet(i); - int y = findSet(j); - - //always keeping the min as x - //shallow tree - if(depth[x]>depth[y]){ - swap(x,y); - } - //making the shallower root's parent the deeper root - p[x] = y; - - //if same depth then increase one's depth - if(depth[x] == depth[y]){ - depth[y]++; - } - //total size of the resultant set. - setSize[y] += setSize[x]; - //changing the maximum elements - maxElement[y] = max(maxElement[x],maxElement[y]); - minElement[y] = min(minElement[x],minElement[y]); - } - //checks if both belongs to same set - bool isSame(int i,int j){ - if(findSet(i) == findSet(j)){ - return true; - } - return false; - } - //returns min max size of i's set - void get(int i){ - cout << "min:" << get_min(i) << " max:" << get_max(i) << " size of set:" <