An adjacency list is a data structure used to represent a graph. In this structure, each vertex (or node) in the graph has a list of all the vertices it is directly connected to by edges. This allows for efficient storage and easy traversal of the graph, especially when the graph is sparse, meaning it has relatively few edges compared to the number of vertices.
Each vertex's list can be implemented using various data types, such as arrays or linked lists. The adjacency list is particularly useful in algorithms like Depth-First Search and Breadth-First Search, as it allows quick access to neighboring vertices during traversal.