Building more complex graph algorithms based on the basic building blocks such as DFS and from there moving on to connected components shortest path traveling salesman