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 uu, and [u][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?
- Θ(n2)
- Θ(n+m)
- Θ(m2)
- Θ(n4) its already discussed but i have some doubts..please help :)
a)The best answer says its by applying BFS
why?
Even if we apply DFS it will give twin pointer right?
b) what is the significance of this statement
and the memory size is not a constraint
absence of this will make any difference?
c) and why to consider BFS or DFS when u represent a graph as adjacency list itself its O(n+m) and as array is O(n2) right?