breath first search
boost
minimum spanning trees