I have to implement a directed graph (digraph) which is permitted to have multiple arcs (multigraph), like in the image linked. The graph has to be optimized to handle a lot of nodes but a few edges between two of them. The graph has to be frequently updated and it has to support efficient path search. Which is an efficient data structure to have a compromise between space used and time for a query? The language is standard C (only libc).
