Este capítulo resume las variantes más habituales de grafos y cómo impactan en su modelado en C. Conocer la clasificación ayuda a elegir la representación (matriz o lista de adyacencia) y los algoritmos apropiados.
Las aristas no tienen orientación; la conexión entre u y v es bidireccional. En matrices de adyacencia esto se refleja con simetría (matriz[u][v] == matriz[v][u]).
Las aristas tienen sentido de origen y destino. Se usan para dependencias o flujos unidireccionales.
Cada arista almacena un peso (distancia, costo, capacidad). Los pesos pueden ser enteros, flotantes o incluso valores simbólicos que luego se interpretan.
Las aristas solo indican presencia o ausencia de conexión. Se modelan con booleanos (0/1) o listas simples de vecinos.
Un grafo simple no tiene lazos (aristas que empiezan y terminan en el mismo vértice) ni aristas paralelas repetidas.
Un multigrafo permite varias aristas entre los mismos vértices y lazos.
Cada par de vértices está conectado por una arista. En un grafo no dirigido con n vértices hay n(n-1)/2 aristas.
Dividen los vértices en dos conjuntos disjuntos U y V de modo que todas las aristas conectan un vértice de U con uno de V. No hay aristas dentro del mismo conjunto.
La densidad mide cuántas aristas existen respecto del máximo posible. Un grafo denso tiene muchas aristas y se beneficia de matrices de adyacencia; uno disperso tiene pocas aristas y suele representarse mejor con listas.