support for changing the algorithm
UPDATE: GraphPrinter -> now is printing the path as it should be printed
UPDATE: MinPriorityQueue -> setting the distance of source to 0