This library contains code related some of the advanced data structures useful to the modern world.
This Project adds 4 advanced data structures into the collection:-
-
Segment tree
-
Fenwick tree
-
Suffix tree
-
Suffix automata
As a part of project 2 more algorithms are also implemented.
-
Heavy light decomposition
-
Centroid decomposition
Segment tree implemented here is basic version which supports all the basic methods.The methods are:-
-Build() -Update() -Query()
This also supports iterator.
Fenwick tree implemented here is basic version which supports all the basic methods.The methods are:-
-Build() -Update() -Query()
This also supports iterator.This data structure can be extended by adding advanced methods.
Suffix tree is used in lot of string applications.It can solve many string based problems.The method supported by suffix tree implemented here are:-
-Build()
Suffix automata is used in lot of string applications.It can solve many string based problems.The method supported by suffix automata implemented here are:-
-Build()
This is a popular type of decomposition where every node selects a heavy child thus forming chains.The important advantage is we can travel between any 2 nodes in just O(log(N)) chains.This can be used in many tree based problems.
This is also popular decomposition where in we recursively select centroid and remove it forming forest and then selecting centroid among those trees.This gives a tree of height O(log(N)).