Graph

Graph

DFS

Quite similar with Backtracking
def dfs(**args): if (...): # ending condition # save results return for (...): # select adjacent nodes of this node # handle node dfs(...) # recursion # cancel operation

BFS

Suitable for finding shortest path between two nodes.
def bfs(**args): queue = dequeue(start) res = [] while queue: for _ in range(len(queue)): cur = queue.popleft() res.append(cur) for c in cur.children: if c: queue.append(c)
 
Problems:
 

Loading Comments...