Data Structures and Algorithms
with Object-Oriented Design Patterns in C# |
The following four operations are used extensively in the implementations of many different graph algorithms:
When adjacency lists are used, the worst-case running time is , since is the length of the adjacency list associated with vertex v.
This is the operation performed by the GetEdge method of the Graph interface.
On the other hand, to enumerate all the edges when using adjacency lists requires the traversal of lists. In all there are edges. Therefore the worst case running time is .
This operation is performed using the enumerator obtained using the Edges property of the Graph interface.
Enumerating the edges emanating from vertex v is a trivial operation when using adjacency lists. All we need do is traverse the list. This takes time in the worst case.
This operation is performed using the enumerator obtained using the EmanatingEdges property of the Vertex interface.
Enumerating the edges incident on vertex w is a non-trivial operation when using adjacency lists. It is necessary to search every adjacency list in order to find all the edges incident on a given vertex. Therefore, the worst-case running time is .
This operation is performed using the enumerator obtained using the IncidentEdges property of the Vertex interface.
representation scheme | ||
operation | adjacency matrix | adjacency list |
find edge (v,w) | O(1) | |
enumerate all edges | ||
enumerate edges emanating from v | ||
enumerate edges incident on w |