Bird
Raised Fist0
DSA Javaprogramming~5 mins

Adjacency List Representation in DSA Java - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is an adjacency list in graph representation?
An adjacency list is a way to represent a graph where each node stores a list of its neighboring nodes. It saves space by only storing edges that exist.
Click to reveal answer
beginner
How does adjacency list compare to adjacency matrix in terms of space?
Adjacency lists use less space for sparse graphs because they only store existing edges, while adjacency matrices use space for all possible edges even if they don't exist.
Click to reveal answer
beginner
In Java, which data structure is commonly used to implement adjacency lists?
In Java, adjacency lists are often implemented using an array or list of lists, such as ArrayList, where each inner list holds neighbors of a node.
Click to reveal answer
intermediate
What is the time complexity to find all neighbors of a node using adjacency list?
The time complexity is O(k), where k is the number of neighbors of that node, because you only visit the connected nodes stored in the list.
Click to reveal answer
beginner
Why is adjacency list preferred for graphs with fewer edges?
Because adjacency lists only store existing edges, they save memory and are faster to iterate over neighbors when the graph has fewer edges compared to the total possible edges.
Click to reveal answer
Which data structure best represents an adjacency list in Java?
AHashMap of Integers
B2D Array (Matrix)
CArrayList of ArrayLists
DLinkedList of Integers
What is the main advantage of adjacency list over adjacency matrix?
AUses less space for sparse graphs
BFaster to check if an edge exists
CSimpler to implement
DAlways uses less memory
If a node has 5 neighbors, how long does it take to list all neighbors using adjacency list?
AO(1)
BO(5)
CO(n) where n is total nodes
DO(n^2)
Which graph type benefits most from adjacency list representation?
ASparse graphs
BGraphs with no edges
CComplete graphs
DDense graphs
In adjacency list, what does each element in the main list represent?
AAn edge between two nodes
BA disconnected node
CA weight of an edge
DA node and its neighbors
Explain how adjacency list represents a graph and why it is efficient for sparse graphs.
Think about how edges are stored only when they exist.
You got /3 concepts.
    Describe how you would implement an adjacency list in Java for a graph with 4 nodes.
    Imagine a list where each position corresponds to a node.
    You got /3 concepts.

      Practice

      (1/5)
      1. What does an adjacency list represent in graph data structures?
      easy
      A. A list where each vertex stores a list of its adjacent vertices
      B. A matrix showing connections between all pairs of vertices
      C. A list of all edges without vertex connections
      D. A list storing only isolated vertices

      Solution

      1. Step 1: Understand adjacency list concept

        An adjacency list stores each vertex with a list of vertices it connects to directly.
      2. Step 2: Compare with other graph representations

        Unlike adjacency matrix, adjacency list focuses on neighbors per vertex, not all pairs.
      3. Final Answer:

        A list where each vertex stores a list of its adjacent vertices -> Option A
      4. Quick Check:

        Adjacency list = vertex with neighbors [OK]
      Hint: Adjacency list = vertex + its neighbors list [OK]
      Common Mistakes:
      • Confusing adjacency list with adjacency matrix
      • Thinking it stores edges only without vertices
      • Assuming it stores isolated vertices only
      2. Which of the following is the correct Java syntax to declare an adjacency list for a graph with 5 vertices?
      easy
      A. ArrayList<Integer>[] graph = new ArrayList[5];
      B. ArrayList<Integer> graph = new ArrayList(5);
      C. List<Integer> graph = new List[5];
      D. ArrayList[] graph = new ArrayList<Integer>(5);

      Solution

      1. Step 1: Understand adjacency list declaration

        We need an array of ArrayLists, one for each vertex, so ArrayList<Integer>[] is correct.
      2. Step 2: Check syntax correctness

        ArrayList<Integer>[] graph = new ArrayList[5]; correctly declares an array of ArrayLists with size 5. Others misuse generics or types.
      3. Final Answer:

        ArrayList<Integer>[] graph = new ArrayList[5]; -> Option A
      4. Quick Check:

        Array of ArrayLists = ArrayList<Integer>[] graph = new ArrayList[5]; [OK]
      Hint: Adjacency list = array of ArrayLists in Java [OK]
      Common Mistakes:
      • Using List instead of ArrayList for array declaration
      • Trying to instantiate generic arrays directly
      • Missing generic type in ArrayList declaration
      3. Given the following Java code snippet for an undirected graph adjacency list, what will be the output after adding edges?
      ArrayList<Integer>[] graph = new ArrayList[3];
      for (int i = 0; i < 3; i++) graph[i] = new ArrayList<>();
      graph[0].add(1);
      graph[1].add(0);
      graph[1].add(2);
      graph[2].add(1);
      System.out.println(graph[1]);
      medium
      A. [0, 1]
      B. [1, 2]
      C. [2]
      D. [0, 2]

      Solution

      1. Step 1: Trace additions to graph[1]

        graph[1] adds 0 and 2, so its list contains [0, 2].
      2. Step 2: Confirm output of System.out.println(graph[1])

        Printing graph[1] shows the list [0, 2].
      3. Final Answer:

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

        graph[1] = [0, 2] [OK]
      Hint: Check which vertices are added to graph[1] list [OK]
      Common Mistakes:
      • Confusing indices and values in adjacency list
      • Forgetting undirected edges require adding both ways
      • Misreading the printed list order
      4. Identify the error in this Java code snippet that tries to create an adjacency list for a graph with 4 vertices:
      ArrayList<Integer>[] graph = new ArrayList[4];
      for (int i = 0; i <= 4; i++) {
          graph[i] = new ArrayList<>();
      }
      medium
      A. Missing generic type in ArrayList declaration
      B. ArrayList cannot be used for adjacency list
      C. Loop condition should be i < 4, not i <= 4
      D. Array size should be 5 instead of 4

      Solution

      1. Step 1: Analyze loop range and array size

        Array size is 4, valid indices are 0 to 3. Loop uses i <= 4, which accesses index 4 (out of bounds).
      2. Step 2: Identify correct loop condition

        Loop should run while i < 4 to avoid ArrayIndexOutOfBoundsException.
      3. Final Answer:

        Loop condition should be i < 4, not i <= 4 -> Option C
      4. Quick Check:

        Array indices 0 to 3, loop must use i < 4 [OK]
      Hint: Array indices go from 0 to size-1 [OK]
      Common Mistakes:
      • Using <= instead of < in loop condition
      • Assuming array size 4 means indices 0 to 4
      • Ignoring generic type warnings
      5. You want to represent a weighted directed graph using adjacency lists in Java. Which data structure is best to store the edges for each vertex?
      hard
      A. ArrayList<Integer> storing only destination vertices
      B. ArrayList> storing destination and weight
      C. ArrayList storing all edges as lists
      D. ArrayList<Boolean> storing if edge exists or not

      Solution

      1. Step 1: Understand weighted directed graph needs

        Each edge has a destination vertex and a weight value, so both must be stored.
      2. Step 2: Choose data structure to store pairs

        Using ArrayList of Pair allows storing destination and weight together.
      3. Step 3: Evaluate other options

        ArrayList<Integer> storing only destination vertices stores only destination, missing weight; ArrayList storing all edges as lists is nested lists without clear pair; ArrayList<Boolean> storing if edge exists or not stores booleans, not weights.
      4. Final Answer:

        ArrayList> storing destination and weight -> Option B
      5. Quick Check:

        Weighted edges need destination + weight pairs [OK]
      Hint: Store edges as pairs (destination, weight) in adjacency list [OK]
      Common Mistakes:
      • Storing only destination without weight
      • Using nested lists without clear structure
      • Using booleans which can't hold weights
      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