https://www.ics.uci.edu/~eppstein/161/960215.html http://www.egr.unlv.edu/~larmore/Courses/CSC477/bfsDfs.pdf