Clase Grafo
Lección 3 de 14 del curso Grafos - Serie de Estructuras de Datos #9 de Coddy.
La clase Graph se construye en torno a un único campo, vertices, que es la lista de adyacencia: un mapa desde cada clave de vértice a la lista de sus vecinos. Cada operación que añadamos más adelante (añadir aristas, listar vecinos, eliminar aristas) es solo un pequeño cambio en este mapa.
El constructor inicia el grafo en su estado vacío: sin vértices ni aristas. Así que el mapa es simplemente un mapa vacío. Los métodos que añadamos en las próximas lecciones lo harán crecer.
Desafío
FácilEscribe una clase Graph con un constructor que no reciba ninguna entrada.
Inicializa un único campo vertices como un mapa vacío (o el equivalente de tu lenguaje para un mapa de adyacencia de clave a lista).
Pruébalo tú mismo
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "graph.h"
static int _cmp_int(const void* a, const void* b) {
int ai = *(const int*)a, bi = *(const int*)b;
return (ai > bi) - (ai < bi);
}
int main() {
Graph g;
Graph_init(&g);
char line[1024];
while (fgets(line, sizeof(line), stdin)) {
line[strcspn(line, "\r\n")] = '\0';
char* cmd = strtok(line, " \t");
if (!cmd) continue;
if (strcmp(cmd, "verticesEmpty") == 0) { printf("%s\n", g.vertexCount == 0 ? "true" : "false"); }
}
return 0;
}
Todas las lecciones de Grafos - Serie de Estructuras de Datos #9
2Proyecto de Grafos
Clase GrafoAgregar VérticeAgregar AristaTiene AristaObtener VecinosEliminar AristaTamaño