CSR (compressed sparse row, fila dispersa comprimida) pone todas las listas una detrás de otra en un solo array, vecinos, y guarda en otro array, inicio, dónde empieza la lista de cada vértice:
El mismo grafo dirigido (0→1, 0→2, 1→2, 2→0, 2→3) en CSR:
El grafo dirigido: 0→1, 0→2, 1→2, 2→0 y 2→3.Cada flecha va de inicio[u] a la posición de vecinos donde empieza la lista de u. La lista de u termina donde empieza la del siguiente. Los dos últimos valores de inicio son 5: el vértice 3 no tiene vecinos.
Los vecinos de u son vecinos[inicio[u]] hasta vecinos[inicio[u + 1] − 1]. inicio tiene V + 1 posiciones, para que el último vértice también sepa dónde termina. El vértice 3 no tiene vecinos: inicio[3] = inicio[4] = 5.