Various Algorithms and Data Structures implementations