adding dfs for directed graph
ading bfs for directed graph
adding topological sort for directed graphs