My friend Jamie convinced me that now would be a good time to implement the info about interfaces that he mentioned a while ago:
Until this code is actually running, I have no way to know what the most efficient way to code the data behind my networks will be. Even a priori, I could choose between storing the basic data of ‘how many edges are there between each pair of nodes’ as an adjacency matrix or as a (decorated) adjacency list, and that’s even before deciding how those matrices or lists will be stored in the C# framework. I have asked for advice on StackExchange, but in the mean time I have created an interface (code pictured above) and will be producing one implementation of it to work with for the time being.
I hope that eventually the implementation chosen will vary with the network (as edge density changes beyond certain thresholds, say), and having an interface will allow me to do this with minimal changes to the code and without losing earlier solutions to the problems I encounter.








