is a path in a graph that visits each vertex exactly once and returns to the starting vertex.