Intermediate Topic 29 of 52 Data Structures
Adjacency Matrix
Graph storage using a square grid marking edges.
How it works
An adjacency matrix is a V by V grid in which cell [i][j] marks, or holds the weight of, an edge from vertex i to vertex j. Edge existence checks take O(1) time, but the structure always uses O(V squared) memory and listing a vertex's neighbors takes O(V). Undirected graphs give a symmetric matrix, and matrix multiplication can count paths.
Step-by-step walkthrough
- The graph is a V by V grid of zeros and ones.
- Entry [A][B] = 1 marks an edge A to B.
- Checking whether an edge exists is one lookup.
- Listing the neighbors of a vertex scans its whole row.
- Memory is O(V squared), which suits dense graphs.
Where it is used
Dense graphs, small graphs, the Floyd-Warshall all-pairs shortest-path algorithm, transition matrices of Markov chains and quick edge lookups in constraint problems use adjacency matrices.
Common pitfall
For large sparse graphs the memory is wasteful, and a million vertices would need a trillion cells. Distinguishing no edge from an edge of weight zero requires a sentinel such as infinity. Adding or removing vertices means resizing the whole matrix. Diagonal entries represent self-loops.
Where it fits in the course
Adjacency Matrix is topic 29 of 52 in Data Structures, rated Intermediate. It follows Adjacency List. The next topic is Disjoint Set Union.
Practice and explore
- Open the interactive lesson, with a mini quiz.
- Take the Data Structures quiz.
How to study this topic
- Read the explanation above and restate the definition in your own words.
- Open the interactive lesson and answer its mini quiz.
- Read the common pitfall, then write a short example that avoids it.
- Check your understanding in the Data Structures quiz, and revisit the topic if you miss a question.
Frequently asked questions
What is Adjacency Matrix?
Where do people use Adjacency Matrix?
What is the most common mistake with Adjacency Matrix?
What should I learn before this topic?
How can I practice it?
Is Adjacency Matrix hard to learn?
How long does it take to learn Adjacency Matrix?
Which topics are related to Adjacency Matrix?
What should I study after Adjacency Matrix?
Related topics
- Adjacency List (Data Structures)
- Disjoint Set Union (Data Structures)
- Graphs (Data Structures)
- Path Compression (Data Structures)
- Matrix Multiplication (Math for Computing)
- Confusion Matrix (AI & Machine Learning)