StreakPeaked· Practice

ExamsGATETechnical

In an adjacency list representation of an undirected simple graph G = (V,E), each edge (u,v) has two adjacency list entries: [v] in the adjacency list of u, and [u] in the adjacency list of v. These are called twins of each other. A twin pointer is a pointer from an adjacency list entry to its twin. If |E| = m and |V| = n, and the memory size is not a constraint, what is the time complexity of the most efficient algorithm to set the twin pointer in each entry in each adjacency list?

  1. Θ(n²)
  2. Θ(n+m)
  3. Θ(m²)
  4. Θ(n⁴)

Correct answer: Θ(n+m)

Solution

The time complexity is Θ(n+m) because each vertex's adjacency list is processed once to set the twin pointers, resulting in a linear traversal of all vertices (n) and edges (m) in the graph.

Related GATE Technical questions

⚔️ Practice GATE Technical free + battle 1v1 →