DFS(G): Select root vertex and add to a Stack (ADT) While stack is not-empty: Inspect top element u on the stack Add any unvisited neighbours of u to the stack Remove u from the stack