Bird
Raised Fist0
DSA Javascriptprogramming~5 mins

Adjacency List Representation in DSA Javascript - 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 neighbors. It shows which nodes are directly connected to each node.
Click to reveal answer
intermediate
How does an adjacency list differ from an adjacency matrix?
An adjacency list stores neighbors for each node in lists, saving space for sparse graphs. An adjacency matrix uses a 2D array showing connections between all pairs, using more space.
Click to reveal answer
beginner
In JavaScript, which data structure is commonly used to implement an adjacency list?
A JavaScript object or Map is used, where keys are node labels and values are arrays (lists) of neighbors.
Click to reveal answer
intermediate
What is the time complexity to find all neighbors of a node using an adjacency list?
It is O(k), where k is the number of neighbors of that node, because you directly access the list of neighbors.
Click to reveal answer
beginner
Why is adjacency list preferred for sparse graphs?
Because it only stores existing edges, saving memory compared to adjacency matrix which stores all possible edges even if many are missing.
Click to reveal answer
What does an adjacency list store for each node?
AA matrix of all nodes
BThe weight of the node
CThe total number of nodes
DA list of its neighbors
Which data structure is best for representing a graph with few edges?
AAdjacency matrix
BArray
CAdjacency list
DStack
In JavaScript, what is a common way to store an adjacency list?
AObject with arrays as values
B2D array only
CString of nodes
DNumber of edges
What is the time complexity to check if node A is connected to node B using adjacency list?
AO(1)
BO(k) where k is neighbors of A
CO(n^2)
DO(n)
Which of these is NOT true about adjacency lists?
AThey cannot represent directed graphs
BThey store neighbors for each node
CThey use more memory than adjacency matrix for dense graphs
DThey save space for sparse graphs
Explain how an adjacency list represents a graph and why it is useful.
Think about how you would list friends for each person in a group.
You got /4 concepts.
    Describe how you would implement an adjacency list in JavaScript for a graph with nodes labeled as strings.
    Imagine a phone book where each name has a list of contacts.
    You got /4 concepts.

      Practice

      (1/5)
      1. What does an adjacency list represent in a graph data structure?
      easy
      A. A list where each node stores its neighbors
      B. A matrix showing connections between nodes
      C. A list of all nodes without connections
      D. A list of edges sorted by weight

      Solution

      1. Step 1: Understand adjacency list concept

        An adjacency list stores each node with a list of its neighbors or connected nodes.
      2. Step 2: Compare with other graph representations

        An adjacency matrix is a 2D array, not a list of neighbors. Other options describe different structures.
      3. Final Answer:

        A list where each node stores its neighbors -> Option A
      4. Quick Check:

        Adjacency list = neighbors list [OK]
      Hint: Adjacency list always stores neighbors for each node [OK]
      Common Mistakes:
      • Confusing adjacency list with adjacency matrix
      • Thinking it stores edges sorted by weight
      • Assuming it lists nodes without connections only
      2. Which of the following is the correct JavaScript syntax to initialize an empty adjacency list for a graph?
      easy
      A. const graph = [];
      B. const graph = new Map();
      C. const graph = {};
      D. const graph = new Set();

      Solution

      1. Step 1: Identify suitable data structure for adjacency list

        An adjacency list can be implemented using a Map to store nodes and their neighbors efficiently.
      2. Step 2: Check syntax correctness

        new Map() creates an empty map. Arrays or objects can be used but Map is preferred for graph keys. Set is for unique values, not key-value pairs.
      3. Final Answer:

        const graph = new Map(); -> Option B
      4. Quick Check:

        Use Map() for adjacency list initialization [OK]
      Hint: Use Map() to store nodes and neighbors in adjacency list [OK]
      Common Mistakes:
      • Using Set which does not store key-value pairs
      • Using empty array which is less clear for key-value
      • Using empty object but Map is better for keys
      3. Given the following adjacency list representation in JavaScript, what will be the output of console.log(graph.get('A'));?
      const graph = new Map();
      graph.set('A', ['B', 'C']);
      graph.set('B', ['A', 'D']);
      graph.set('C', ['A']);
      graph.set('D', ['B']);
      medium
      A. ['B', 'D']
      B. ['A', 'D']
      C. ['C', 'D']
      D. ['B', 'C']

      Solution

      1. Step 1: Locate the key 'A' in the adjacency list

        The graph Map has key 'A' with value ['B', 'C'] representing neighbors.
      2. Step 2: Understand what graph.get('A') returns

        It returns the array of neighbors for 'A', which is ['B', 'C'].
      3. Final Answer:

        ['B', 'C'] -> Option D
      4. Quick Check:

        graph.get('A') = ['B', 'C'] [OK]
      Hint: graph.get(node) returns neighbors array for that node [OK]
      Common Mistakes:
      • Confusing neighbors of 'A' with neighbors of 'B'
      • Expecting a string instead of array
      • Mixing up keys and values in Map
      4. The following code attempts to add an edge from node 'A' to node 'D' in an adjacency list but has a bug. What is the error?
      const graph = new Map();
      graph.set('A', ['B', 'C']);
      // Add edge from A to D
      graph.get('A').push('D');
      console.log(graph.get('A'));
      medium
      A. graph.get('A') returns undefined causing error
      B. Cannot push to array returned by graph.get('A')
      C. The code works correctly and adds 'D' to neighbors
      D. graph.set should be used instead of push

      Solution

      1. Step 1: Check if graph.get('A') returns an array

        graph.get('A') returns ['B', 'C'], an array, so push is valid.
      2. Step 2: Verify if push adds 'D' correctly

        push('D') adds 'D' to the array, so neighbors become ['B', 'C', 'D'].
      3. Final Answer:

        The code works correctly and adds 'D' to neighbors -> Option C
      4. Quick Check:

        push on neighbors array works [OK]
      Hint: graph.get(node) returns array; push adds neighbor [OK]
      Common Mistakes:
      • Assuming graph.get returns undefined if key exists
      • Thinking push cannot modify array in Map
      • Confusing push with set method
      5. You want to represent a directed graph with nodes 'X', 'Y', 'Z' where edges are X->Y, Y->Z, and Z->X. Which adjacency list correctly represents this graph in JavaScript?
      hard
      A. const graph = new Map([['X', ['Y']], ['Y', ['Z']], ['Z', ['X']]]);
      B. const graph = new Map([['X', ['Y', 'Z']], ['Y', ['X']], ['Z', ['Y']]]);
      C. const graph = new Map([['X', ['Z']], ['Y', ['X']], ['Z', ['Y']]]);
      D. const graph = new Map([['X', ['Y']], ['Y', ['X', 'Z']], ['Z', []]]);

      Solution

      1. Step 1: Understand directed edges

        Edges are X->Y, Y->Z, Z->X, so each node points only to its direct neighbors.
      2. Step 2: Match edges to adjacency list entries

        'X' neighbors: ['Y'], 'Y' neighbors: ['Z'], 'Z' neighbors: ['X'] matches const graph = new Map([['X', ['Y']], ['Y', ['Z']], ['Z', ['X']]]); exactly.
      3. Final Answer:

        const graph = new Map([['X', ['Y']], ['Y', ['Z']], ['Z', ['X']]]); -> Option A
      4. Quick Check:

        Directed edges match adjacency list neighbors [OK]
      Hint: Each node's list shows only nodes it points to [OK]
      Common Mistakes:
      • Including neighbors that don't have edges from the node
      • Mixing up direction of edges
      • Adding extra neighbors not in edges
      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