Graph algorithms

I'm adding some basic graph algorithms implementation. Currently
checking methods contain only 1 input file and don't verify the output.
This will be changed in the subsequent commits.