Graph traversal is the method of visiting all the nodes in a connected graph.
Depthfirst Search (DFS)
Depthfirst Search is an algorithm for visiting every node in a connected graph once. It travels by a path and go as far as possible. When the path reaches an end point, it will return to the last branch it meet and go through that branch.
Algorithm
 Mark the root node as current node.
 Mark current node as visited
 For each neighbor node of the current node,
If it is not visited before, mark this node as current node and repeat process from step 2

Time Complexity
It have to visited every node and edges once, so time complexity is O ( V  +  E )
SpaceComplexity
It will need to go forward alll nodes in the worst case, so the space complexity is O ( V )
Pseudo Code
Function DFS (Graph, Node)
Mark Node as visited
For each neighbor n of N do
If n is not visited then
Mark n as visited
DFS (Graph, n)

Breadthfirst Search (BFS)
Breadthfirst Search is an algorithm for visiting every node in a connected graph. It travels the graph by the order of the distance from the root node.
Algorithm
 Enqueue the root node into a Queue
 Dequeue the first node from the Queue and mark it as visited.
 For each connected node of top node, check is it visited. If no, enqueue it into the Queue
 If the Queue is not empty, repeat the process from step 2, else, the algorithm is finish
It will be a DFS when change the Queue to Stack 
Time Complexity
It have to visited every node and edges once, so time complexity is O ( V  +  E )
SpaceComplexity
It will need to save all nodes into the stack in the worst case, so the space complexity is O ( V )
Pseudo Code
Function BFS (Graph, RootNode)
Create a Queue Q
Enqueue RootNode into Q
Mark RootNode as visited
Do
Get the first node from Q as N
Dequeue out the top node from Q
For each neighbor n of N do
If n is not visited then
Mark n as visited
Push n into S
While Q is not empty

