Un grafo se representa como un conjunto de vértices y aristas. Existen tres formas comunes de representar un grafo en un programa: mediante matrices, listas y matrices dispersas. Un camino euleriano visita todos los arcos de un grafo de manera conexa, y un grafo euleriano contiene un camino euleriano. Un camino hamiltoniano visita todos los vértices de un grafo de manera conexa. Un árbol conecta todos los vértices de un grafo utilizando la menor cantidad posible de aristas.