Search algorithms: DFS, BFS and DIjkstra