This repository contains implementations for many popular algorithms using modern C++. Some commonly used algorithms are moved to src folder so I can reuse them in other projects.
I mainly use google coding style for classes and functions. All solutions are, however, written as unittests using Catch2.
Most of classes in src folder are created using Policy Based Design. This approach can help to improve the flexibilty of the core algorithms and it also reduces the complexity of the testsuite without sarcrificing the performance of core algorithms. For example, by splitting the DFS algorithm into a generic DFS core algorithm and visting policy we can have different DFS variations with minimum effort. See this book for more inforation about the benefit of the Policy Based Design..