We can use a dynamic data structure to represent graphs as well, called an adjacency list. This consists of a list of adjacent vertices for every vertex of the graph. There are a few different ways we can represent this data structure. To represent the list of adjacent vertices, we can use a list (array), a linked list, or even a hash map or dictionary. The following diagram exemplifies the adjacency list data structure:
Both representations are very useful and have different properties (for example, finding out whether the vertices v and w are adjacent is faster using an adjacency matrix), although adjacency lists are probably ...