Basically google that . BFS and DFS are very basic and simple stuff . There are tons of explanation on the internet and some should be easy enough . Start with DFS BFS . The only catch you have directed graphs . Those are a bit of pain and if you find some algorithm for 5 and 6 it might not work for directed graph . There are brute force ways for 5 and 6 traverse graph starting from each node . It doesn ' t really matter if you use DFS or BFS for the traversal though BFS seems more natural for me . For 5 the graph is strongly connected if all the vertexes are visited during each traversal . For 6 if you could visit already visited node during traversal then there is a cycle . There are more efficient ways to do that and it is good if you search for them andor try to make your own , but this should be enough for you . Internet search skills are more important than BFS DFS , there are even some good programmers , who live fine without the sacred traversal knowledge , but every decent programmer can implement them using google .