Depth First Search (DFS)
DFS is a graph traversal algorithm that explores a graph by going as deep as possible along each branch before backtracking. It starts from a source vertex, moves to an unvisited adjacent vertex, and continues this process until it reaches a vertex with no unvisited neighbors. DFS uses a stack or recursion to keep track of vertices.

Breadth First Search (BFS)
BFS is a graph traversal algorithm that explores all the vertices of a graph level by level, starting from a given source vertex. It first visits all the neighbors of the source, then the neighbors of those neighbors, and so on, until all reachable vertices are visited. BFS uses a queue to keep track of the vertices to be explored.

Difference between BFS and DFS
| Breadth-First Search (BFS) | Depth First Search(DFS) |
| BFS stands for Breadth-First Search. | DFS stands for Depth First Search. |
| BFS uses Queue Data structure to keep track of the next location to visit. | DFS uses Stack Data structure to keep track of the next location to visit. |
| BFS is better when a target is closer to the Source. | DFS is better when a target is far from the source. |
| BFS requires more memory as compare to DFS. | DFS requires less memory as compare to BFS. |
| BFS does not require backtracking. | DFS requires backtracking. |
| You will never be trapped in infinite loops. | You may be trapped into infinite loops. |
| BFS is slower than DFS. | DFS is faster than BFS. |