Bird
Raised Fist0
DSA Cprogramming~5 mins

Adjacency Matrix Representation in DSA C - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is an adjacency matrix in graph representation?
An adjacency matrix is a 2D array used to represent a graph where each cell at row i and column j indicates if there is an edge from vertex i to vertex j.
Click to reveal answer
beginner
How do you represent no edge between two vertices in an adjacency matrix for an unweighted graph?
You represent no edge by storing 0 in the cell corresponding to those two vertices in the adjacency matrix.
Click to reveal answer
intermediate
In an adjacency matrix for a weighted graph, what value is typically used to represent no edge?
A special value like a very large number (e.g., INT_MAX) is used to represent no edge, depending on the implementation.
Click to reveal answer
beginner
What is the time complexity to check if an edge exists between two vertices using an adjacency matrix?
It is O(1) because you directly access the matrix cell at [i][j].
Click to reveal answer
intermediate
What is a disadvantage of using adjacency matrix for graph representation?
It uses O(V²) space, which can be inefficient for graphs with many vertices but few edges (sparse graphs).
Click to reveal answer
What does a 1 in the adjacency matrix cell [2][3] indicate in an unweighted graph?
AThere is an edge from vertex 2 to vertex 3
BThere is no edge from vertex 2 to vertex 3
CVertex 2 and 3 are the same
DThe graph is weighted
What is the size of an adjacency matrix for a graph with 5 vertices?
A4 x 4
B5 x 4
C5 x 5
DDepends on number of edges
Which operation is fastest with adjacency matrix representation?
AList all neighbors of a vertex
BRemove a vertex
CAdd a new vertex
DCheck if an edge exists between two vertices
What is the space complexity of adjacency matrix for a graph with V vertices?
AO(V²)
BO(V)
CO(E)
DO(1)
In a weighted graph adjacency matrix, what does a 0 usually mean?
ANo edge between vertices
BEdge weight zero
CEdge exists with weight 1
DGraph is unweighted
Explain how an adjacency matrix represents edges in a graph.
Think of a table where rows and columns are vertices.
You got /3 concepts.
    Describe the advantages and disadvantages of using adjacency matrix for graph representation.
    Consider speed and memory use.
    You got /3 concepts.

      Practice

      (1/5)
      1. What does an adjacency matrix represent in graph theory?
      easy
      A. A 2D array showing connections between nodes
      B. A list of nodes in the graph
      C. A sequence of edges in order
      D. A tree structure of nodes

      Solution

      1. Step 1: Understand adjacency matrix concept

        An adjacency matrix is a 2D array where rows and columns represent nodes.
      2. Step 2: Identify what the matrix stores

        Each cell shows if an edge exists between two nodes (1 for connected, 0 for not).
      3. Final Answer:

        A 2D array showing connections between nodes -> Option A
      4. Quick Check:

        Adjacency matrix = 2D array [OK]
      Hint: Adjacency matrix is always a 2D grid of node connections [OK]
      Common Mistakes:
      • Confusing adjacency matrix with adjacency list
      • Thinking it stores node values instead of edges
      • Assuming it is a sequence or tree
      2. Which of the following is the correct way to declare a 4x4 adjacency matrix in C?
      easy
      A. int matrix[4];
      B. int matrix[4][4];
      C. int matrix[];
      D. int matrix[4,4];

      Solution

      1. Step 1: Recall C array declaration syntax

        In C, a 2D array is declared as type name[rows][columns].
      2. Step 2: Match syntax for 4x4 matrix

        For 4 rows and 4 columns, it is int matrix[4][4];
      3. Final Answer:

        int matrix[4][4]; -> Option B
      4. Quick Check:

        2D array syntax = int matrix[4][4]; [OK]
      Hint: Use int matrix[rows][columns] for 2D arrays in C [OK]
      Common Mistakes:
      • Using single dimension array for matrix
      • Using comma inside brackets (invalid syntax)
      • Not specifying both dimensions
      3. Given the following adjacency matrix for a graph with 3 nodes:
      int matrix[3][3] = {
        {0, 1, 0},
        {1, 0, 1},
        {0, 1, 0}
      };
      
      Which nodes are directly connected to node 1 (index 1)?
      medium
      A. [1, 2]
      B. [0, 1]
      C. [0, 2]
      D. [2]

      Solution

      1. Step 1: Identify row for node 1

        Node 1 corresponds to index 1, so look at matrix[1]: {1, 0, 1}.
      2. Step 2: Find indices with value 1

        Positions 0 and 2 have 1, meaning node 1 connects to nodes 0 and 2.
      3. Final Answer:

        [0, 2] -> Option C
      4. Quick Check:

        matrix[1][0] and matrix[1][2] = 1 [OK]
      Hint: Check the row of the node for 1s to find connections [OK]
      Common Mistakes:
      • Confusing row and column indices
      • Including the node itself as connected
      • Reading zeros as connections
      4. Consider this code snippet to initialize a 3x3 adjacency matrix in C:
      int matrix[3][3];
      for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 3; j++) {
          matrix[i][j] = 0;
        }
      }
      matrix[1][3] = 1;
      
      What is the error in this code?
      medium
      A. Accessing out-of-bounds index matrix[1][3]
      B. Missing semicolon after for loop
      C. Incorrect initialization of matrix elements
      D. Using wrong data type for matrix

      Solution

      1. Step 1: Check loop ranges and matrix size

        Matrix is 3x3, so valid indices are 0 to 2 for both rows and columns.
      2. Step 2: Identify invalid index usage

        matrix[1][3] tries to access column index 3, which is out of bounds.
      3. Final Answer:

        Accessing out-of-bounds index matrix[1][3] -> Option A
      4. Quick Check:

        Index 3 invalid for size 3 array [OK]
      Hint: Array indices go from 0 to size-1; check carefully [OK]
      Common Mistakes:
      • Ignoring array bounds and using invalid indices
      • Assuming loops fix out-of-range errors
      • Confusing row and column indices
      5. You have a directed graph with 4 nodes. The adjacency matrix is:
      int matrix[4][4] = {
        {0, 1, 0, 0},
        {0, 0, 1, 0},
        {1, 0, 0, 0},
        {0, 0, 0, 0}
      };
      
      Which nodes have no incoming edges?
      hard
      A. [0]
      B. [0, 3]
      C. [1, 3]
      D. [3]

      Solution

      1. Step 1: Understand incoming edges in adjacency matrix

        Incoming edges to a node are shown by 1s in that node's column.
      2. Step 2: Check each column for 1s

        Column 0 has 1 at row 2 (node 2 -> node 0).
        Column 1 has 1 at row 0 (node 0 -> node 1).
        Column 2 has 1 at row 1 (node 1 -> node 2).
        Column 3 has no 1s (all 0s).
      3. Step 3: Identify nodes with no incoming edges

        Nodes 1 and 3 have no incoming edges because column 1 has 1 at row 0 (so node 1 has incoming edge), so this is incorrect. Actually, column 1 has 1 at row 0, so node 1 has incoming edge. Column 3 has no 1s, so node 3 has no incoming edges. Node 0 has incoming edge from node 2. Node 2 has incoming edge from node 1. So only node 3 has no incoming edges.
      4. Final Answer:

        [3] -> Option D
      5. Quick Check:

        Column 3 all 0s [OK]
      Hint: Look down columns to find incoming edges for each node [OK]
      Common Mistakes:
      • Checking rows instead of columns for incoming edges
      • Confusing directed and undirected edges
      • Missing edges from nodes to themselves
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard