Depth First Search
Introduction To Depth-First Search