Vértices + aristas. Sin raíz, con ciclos permitidos. Cómo lo guardas define el costo de todo lo que sigue.
| Lista de adyacencia | Matriz de adyacencia | |
|---|---|---|
| Espacio | O(V+E) | O(V²) |
| has_edge | O(degree) | O(1) |
| vecinos | O(degree) | O(V) |
| Mejor para | dispersos (la mayoría) | densos / pruebas de arista |
Cada arista se agrega a las listas de vecinos de ambos extremos.
Grafo disperso, 4000 vértices: 437 KB (lista) vs 125 MB (matriz) → 286×. La matriz además vuelve todo recorrido O(V²) en lugar de O(V+E).
Usa la lista de adyacencia por defecto — los grafos reales son dispersos. Todo algoritmo que viene es O(V+E) gracias a eso. Sigue: BFS y DFS.