study algorithms python Breadth-first search (BFS) graph and tree Depth-first search (DFS) graph and tree