A versatile data structure for edge-oriented graph algorithms
Jürgen Ebert · Communications of the ACM · 1987
An abstract graph module that allows for easy and secure programming of a great number of graph algorithms is implemented by symmetrically stored forward and backward adjacency lists, thus supporting edge-oriented traversals of general directed and undirected graphs.