Example #1
0
int main(int argc, char *argv[]) {
    graph_t *graph;
    int i, n, *dist, *parent;

    graph = graph_create(NUM_ELEM);
    graph_add_weighted_edge(graph, 0, 9, 200);
    graph_add_edge(graph, 0, 2);
    graph_add_edge(graph, 0, 4);
    graph_add_edge(graph, 0, 6);
    graph_add_edge(graph, 2, 4);
    graph_add_edge(graph, 2, 7);
    graph_add_edge(graph, 7, 9);
    printf("\nAll edges: \n");
    graph_print_edges(graph);

    printf("\nAll edges from 0: \n");
    graph_foreach_weighted(graph, 0, &graph_print_edge_weight, NULL);

    printf("\nDijkstra: \n");
    n = graph_vertex_count(graph);
    dist = malloc(sizeof(int) * n);
    parent = malloc(sizeof(int) * n);

    dijkstra(graph, 0, dist, parent);

    for (i=0; i<n; i++)
        if (dist[i] == INT_MAX)
            printf(" no ");
        else
            printf("%3d ", dist[i]);
    printf("\n");
    for (i=0; i<n; i++)
        printf("%3d ", parent[i]);
    printf("\n");

    graph_destroy(graph);

    return EXIT_SUCCESS;
}
Example #2
0
void
graph_add_edge(Graph g, int u, int v)
{
    graph_add_weighted_edge(g, u, v, GRAPH_DEFAULT_EDGE_WEIGHT);
}
Example #3
0
void graph_add_edge(graph_t *graph, int source, int dest) {
    graph_add_weighted_edge(graph, source, dest, GRAPH_DEFAULT_WEIGHT);
}