Bird
Raised Fist0
DSA Typescriptprogramming~5 mins

Adjacency List Representation in DSA Typescript - 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 only, 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
TypeScript code snippet: How to declare an adjacency list for a graph with 3 nodes?
const graph: Map<number, number[]> = new Map();
graph.set(0, [1, 2]);
graph.set(1, [0]);
graph.set(2, [0]);
Click to reveal answer
intermediate
Why is adjacency list preferred for sparse graphs?
Because it only stores existing edges, saving memory and making traversal faster compared to adjacency matrix which stores all possible edges.
Click to reveal answer
intermediate
What is the time complexity to find all neighbors of a node in adjacency list?
It is O(k), where k is the number of neighbors of that node, because the list directly stores neighbors.
Click to reveal answer
What data structure is commonly used to implement an adjacency list?
AQueue
B2D array
CStack
DArray of lists or Map of lists
Which graph representation uses less space for a graph with few edges?
AAdjacency matrix
BAdjacency list
CEdge list
DIncidence matrix
In an adjacency list, how do you find neighbors of a node?
ALook up the node's list of neighbors
BScan the entire matrix row
CCheck all nodes in the graph
DUse a stack to traverse
What is the main disadvantage of adjacency matrix compared to adjacency list?
AUses more memory for sparse graphs
BSlower to find neighbors
CCannot represent directed graphs
DHard to implement
Which of these is a valid TypeScript type for an adjacency list?
Astring[]
Bnumber[][]
CMap<number, number[]>
DSet<number>
Explain how an adjacency list represents a graph and why it is efficient for sparse graphs.
Think about how you store only connected nodes, not all possible pairs.
You got /3 concepts.
    Describe how you would implement an adjacency list in TypeScript for an undirected graph.
    Remember undirected means two-way connections.
    You got /3 concepts.

      Practice

      (1/5)
      1. What does an adjacency list represent in graph data structures?
      easy
      A. A list of all nodes without connections
      B. A matrix showing distances between nodes
      C. A queue of nodes to visit next
      D. A list where each node stores its connected neighbors

      Solution

      1. Step 1: Understand adjacency list concept

        An adjacency list stores each node with a list of its neighbors, showing direct connections.
      2. Step 2: Compare options with definition

        Only A list where each node stores its connected neighbors correctly describes this structure; others describe different concepts.
      3. Final Answer:

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

        Adjacency list = neighbors list [OK]
      Hint: Adjacency list always stores neighbors per node [OK]
      Common Mistakes:
      • Confusing adjacency list with adjacency matrix
      • Thinking it stores distances instead of neighbors
      • Assuming it is a queue or unrelated structure
      2. Which of the following is the correct TypeScript syntax to declare an adjacency list for a graph with nodes as numbers?
      easy
      A. const graph: number[][] = [];
      B. const graph: Map = new Map();
      C. const graph: Record = {};
      D. const graph: Array<number> = [];

      Solution

      1. Step 1: Identify adjacency list type

        An adjacency list maps each node (number) to an array of connected nodes (number[]).
      2. Step 2: Match TypeScript syntax

        Map correctly represents this; others are incorrect types or structures.
      3. Final Answer:

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

        Map = adjacency list [OK]
      Hint: Use Map with number keys and array values for adjacency list [OK]
      Common Mistakes:
      • Using Record which maps to single number, not array
      • Using number[][] without keys for nodes
      • Using Array<number> which is just a list, not adjacency
      3. Given the following TypeScript code, what is the output after adding edges?
      const graph: Map = new Map();
      graph.set(1, [2, 3]);
      graph.set(2, [1]);
      graph.set(3, [1, 4]);
      graph.set(4, [3]);
      console.log(graph.get(3));
      medium
      A. [2, 3]
      B. [3, 4]
      C. [1, 4]
      D. undefined

      Solution

      1. Step 1: Trace graph.set calls

        Node 3 is set with neighbors [1, 4].
      2. Step 2: Check graph.get(3)

        Returns the array [1, 4] assigned to node 3.
      3. Final Answer:

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

        graph.get(3) = [1, 4] [OK]
      Hint: graph.get(node) returns neighbors array [OK]
      Common Mistakes:
      • Confusing neighbors of node 3 with node 1 or 2
      • Expecting undefined if not careful with set calls
      • Mixing up array contents order
      4. Identify the error in this TypeScript adjacency list code snippet:
      const graph: Map = new Map();
      graph.set(1, [2]);
      graph.set(2, [1]);
      graph.get(3).push(1);
      medium
      A. graph.get(3) returns undefined, so push causes error
      B. Map keys must be strings, not numbers
      C. graph.set should use arrays of strings, not numbers
      D. Missing initialization of graph variable

      Solution

      1. Step 1: Check graph.get(3) call

        Node 3 was never set, so graph.get(3) returns undefined.
      2. Step 2: Understand push on undefined

        Calling push on undefined causes runtime error.
      3. Final Answer:

        graph.get(3) returns undefined, so push causes error -> Option A
      4. Quick Check:

        Accessing unset key returns undefined [OK]
      Hint: Check if key exists before pushing to adjacency list [OK]
      Common Mistakes:
      • Assuming graph.get(3) returns empty array automatically
      • Thinking Map keys must be strings (numbers are allowed)
      • Ignoring runtime error from push on undefined
      5. You want to represent a directed graph with nodes 1 to 4 using an adjacency list in TypeScript. Which code correctly adds an edge from node 2 to node 4 without affecting other edges?
      const graph: Map = new Map();
      graph.set(1, [2]);
      graph.set(2, [3]);
      graph.set(3, []);
      graph.set(4, []);
      // Add edge from 2 to 4 here
      hard
      A. graph.get(2)?.push(4);
      B. graph.set(2, [4]);
      C. graph.set(4, [2]);
      D. graph.get(4)?.push(2);

      Solution

      1. Step 1: Understand existing edges

        Node 2 currently has neighbors [3]. We want to add 4 without removing 3.
      2. Step 2: Choose correct method to add edge

        Using graph.get(2)?.push(4) adds 4 to existing array, preserving [3]. graph.set(2, [4]) replaces neighbors, removing 3.
      3. Final Answer:

        graph.get(2)?.push(4); -> Option A
      4. Quick Check:

        Use push to add edge without overwriting [OK]
      Hint: Use push on existing neighbors to add edges safely [OK]
      Common Mistakes:
      • Overwriting neighbors array with set instead of pushing
      • Adding edge to wrong node
      • Confusing direction of edge in directed graph
      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