Grafo é um modelo matemático para representar uma coleção de objetos (vértices) que são ligados aos pares por outra coleção de objetos (arestas).
Um grafo é definido por um par onde:

  • é um conjunto qualquer (de vértices).
  • é uma relação em , ou seja, um subconjunto do produto cartesiano .

Os grafos são uma poderosa abstração, permitindo a modelagem de diversos problemas computacionais e até mesmo projetos de circuitos, conceitos de software e muito mais.
Grafos podem ser orientados ou não orientados. Um grafo é dito orientado quando as arestas especificam claramente quem é o vértice de partida e quem é o vértice de chegada. Quando as arestas não tem direção definida, o grafo é dito não orientado.