Graph
Question 1 
Which of the following is an advantage of adjacency list representation over adjacency matrix representation of a graph?
In adjacency list representation, space is saved for sparse graphs.  
DFS and BSF can be done in O(V + E) time for adjacency list representation. These operations take O(V^2) time in adjacency matrix representation. Here is V and E are number of vertices and edges respectively.  
Adding a vertex in adjacency list representation is easier than adjacency matrix representation.  
All of the above 
Discuss it
Question 1 Explanation:
Question 2 
The degree sequence of a simple graph is the sequence of the degrees of the nodes in the graph in decreasing order. Which of the following sequences can not be the degree sequence of any graph?
I. 7, 6, 5, 4, 4, 3, 2, 1
II. 6, 6, 6, 6, 3, 3, 2, 2
III. 7, 6, 6, 4, 4, 3, 2, 2
IV. 8, 7, 7, 6, 4, 2, 1, 1
I and II  
III and IV  
IV only  
II and IV 
Discuss it
Question 2 Explanation:
See Question 3 of http://www.geeksforgeeks.org/datastructuresandalgorithmsset25/ for explanation.
Question 3 
The time complexity of computing the transitive closure of a binary relation on a set of n elements is known to be:
O(n)  
O(nLogn)  
O(n ^ (3/2))  
O(n^3) 
Discuss it
Question 3 Explanation:
See question 3 of http://www.geeksforgeeks.org/datastructuresandalgorithmsset22/
Question 4 
The most efficient algorithm for finding the number of connected components in an undirected graph on n vertices and m edges has time complexity.
(A) (n)
(B) (m)
(C) (m + n)
(D) (mn)
A  
B  
C  
D 
Discuss it
Question 4 Explanation:
Connected components can be found in O(m + n) using Tarjan's algorithm. Once we have connected components, we can count them.
Question 5 
Consider an undirected unweighted graph G. Let a breadthfirst traversal of G be done starting from a node r. Let d(r, u) and d(r, v) be the lengths of the shortest paths from r to u and v respectively, in G. lf u is visited before v during the breadthfirst traversal, which of the following statements is correct? (GATE CS 2001)
d(r, u) < d (r, v)  
d(r, u) > d(r, v)  
d(r, u) <= d (r, v)  
None of the above 
Discuss it
Question 5 Explanation:
d(r, u) and d(r, v) will be equal when u and v are at same level, otherwise d(r, u) will be less than d(r, v)
Question 6 
How many undirected graphs (not necessarily connected) can be constructed out of a given set V= {V 1, V 2,…V n} of n vertices ?
n(nl)/2  
2^n  
n!  
2^(n(n1)/2)

Discuss it
Question 6 Explanation:
In an undirected graph, there can be maximum n(n1)/2 edges. We can choose to have (or not have) any of the n(n1)/2 edges. So, total number of undirected graphs with n vertices is 2^(n(n1)/2).
Question 7 
Which of the following statements is/are TRUE for an undirected graph?
P: Number of odd degree vertices is even
Q: Sum of degrees of all vertices is even
P Only  
Q Only  
Both P and Q  
Neither P nor Q 
Discuss it
Question 7 Explanation:
P is true for undirected graph as adding an edge always increases degree of two vertices by 1.
Q is true: If we consider sum of degrees and subtract all even degrees, we get an even number because every edge increases the sum of degrees by 2. So total number of odd degree vertices must be even.
Question 8 
Consider an undirected random graph of eight vertices. The probability that there is an edge between a pair of vertices is 1/2. What is the expected number of unordered cycles of length three?
1/8  
1  
7  
8 
Discuss it
Question 8 Explanation:
A cycle of length 3 can be formed with 3 vertices. There can be total 8C3 ways to pick 3 vertices from 8. The probability that there is an edge between two vertices is 1/2. So expected number of unordered cycles of length 3 = (8C3)*(1/2)^3 = 7
Question 9 
Given an undirected graph G with V vertices and E edges, the sum of the degrees of all vertices is
E  
2E  
V  
2V 
Discuss it
Question 9 Explanation:
Since the given graph is undirected, every edge contributes as 2 to sum of degrees.
So the sum of degrees is 2E.
Question 10 
How many undirected graphs (not necessarily connected) can be constructed out of a given set V = {v1, v2, ... vn} of n vertices?
n(n1)/2  
2^{n}  
n!  
2^{n(n1)/2} 
Discuss it
Question 10 Explanation:
There are total n*(n1)/2 possible edges. For every edge, there are to possible options, either we pick it or don't pick. So total number of possible graphs is 2^{n(n1)/2}.
Question 11 
What is the maximum number of edges in an acyclic undirected graph with n vertices?
ni  
n  
n + 1  
2n1 
Discuss it
Question 11 Explanation:
n * (n  1) / 2 when not cyclic.
An acyclic graph with the maximum number of edges is actually a spanning tree and therefore, correct answer is n1 edges.
So Answer is A
Question 12 
Let G be a weighted undirected graph and e be an edge with maximum weight in G. Suppose there is a minimum weight spanning tree in G containing the edge e. Which of the following statements is always TRUE?
There exists a cutset in G having all edges of maximum weight.  
There exists a cycle in G having all edges of maximum weight  
Edge e cannot be contained in a cycle.  
All edges in G have the same weight 
Discuss it
Question 12 Explanation:
Background : Given a connected and undirected graph, a spanning tree of that graph is a subgraph that is a tree and connects all the vertices together.
 A spanning tree has exactly V  1 edges.
 A single graph can have many different spanning trees. A minimum spanning tree (MST) or minimum weight spanning tree for a weighted, connected and undirected graph is a spanning tree with weight less than or equal to the weight of every other spanning tree. The weight of a spanning tree is the sum of weights given to each edge of the spanning tree.
 There can be more that one possible spanning trees of a graph. For example, the graph in this question has 6 possible spanning trees.
 MST has lightest edge of every cutset. Remember Prim's algorithm which basically picks the lightest edge from every cutset.
Question 13 
Q84 Part_B
A sink in a directed graph is a vertex i such that there is an edge from every vertex j ≠ i to i and there is no edge from i to any other vertex. A directed graph G with n vertices is represented by its adjacency matrix A, where A[i] [j] = 1 if there is an edge directed from vertex i to j and 0 otherwise. The following algorithm determines whether there is a sink in the graph G.
i = 0 do { j = i + 1; while ((j < n) && E1) j++; if (j < n) E2; } while (j < n); flag = 1; for (j = 0; j < n; j++) if ((j! = i) && E3) flag = 0; if (flag) printf("Sink exists"); else printf("Sink does not exist");
(A[i][j] && !A[j][i])  
(!A[i][j] && A[j][i])  
(!A[i][j]   A[j][i])  
(A[i][j]   !A[j][i])

Discuss it
Question 13 Explanation:
Below explanation is for Previous Part of this question:
For vertex i to be a sink, there should be no edge from i to any other vertex.
According the input given in question,
A[i][j] = 1 means there is an edge from vertex i to j. A[i][j] = 0 means there is no edge from i to jFor a node to i to be sink,
A[i][j] should be 0 for all j A[j][i] should be 1 for all j.The above pseudo code checks every vertex i for sink, starting from i = 0. It basically checks every vertex j after i for being a sink. The trick in pseudo code is, it doesn't check for j smaller than i. The i picked by this loop may not be sink. It basically makes sure that we don't ignore a potential sink. The check whether i is actually a sink or not is done later after do while loop. Vertex i is a potential sink while A[i][j] is zero Thus, E1 : !A[i][j] If the above condition is false, then i is not a sink. All j < i can also not be a sink because there is no edge from i to j. Now, the next potential sink can be j. So, E2 : i = j Explanation for this question The following pseudo code basically checks if the potential sink picked by the code above is actually a sink or not.
flag = 1; for (j = 0; j < n; j++) if ((j! = i) && E3) flag = 0;flag equals to 0 means i is not a sink. The code sets the flag 0 as soon as it finds out that i is not a sink.
A node i is not a sink if either of the following two conditions become true for any j not equal to i. A[i][j] is 1 for any j OR A[j][i] is 0 for any jE3 : (A[i][j]   !A[j][i]) Therefore option D is correct
Question 14 
Q85 Part_A
Consider a simple graph with unit edge costs. Each node in the graph represents a router. Each node maintains a routing table indicating the next hop router to be used to relay a packet to its destination and the cost of the path to the destination through that router. Initially, the routing table is empty. The routing table is synchronously updated as follows. In each updation interval, three tasks are performed.
 A node determines whether its neighbours in the graph are accessible. If so, it sets the tentative cost to each accessible neighbour as 1. Otherwise, the cost is set to ∞.
 From each accessible neighbour, it gets the costs to relay to other nodes via that neighbour (as the next hop).
 Each node updates its routing table based on the information received in the previous two steps by choosing the minimum cost.
For the graph given above, possible routing tables for various nodes after they have stabilized, are shown in the following options. Identify the correct table.
1)  Table for node A


2)  Table for node C


3) 
Table for node B


4)  Table for node D

A  
B  
C  
D 
Discuss it
Question 15 
Q85 Part_B
Consider a simple graph with unit edge costs. Each node in the graph represents a router. Each node maintains a routing table indicating the next hop router to be used to relay a packet to its destination and the cost of the path to the destination through that router. Initially, the routing table is empty. The routing table is synchronously updated as follows. In each updation interval, three tasks are performed.
Continuing from the earlier problem, suppose at some time t, when the costs have stabilized, node A goes down. The cost from node F to node A at time (t + 100) is
 A node determines whether its neighbours in the graph are accessible. If so, it sets the tentative cost to each accessible neighbour as 1. Otherwise, the cost is set to ∞.
 From each accessible neighbour, it gets the costs to relay to other nodes via that neighbour (as the next hop).
 Each node updates its routing table based on the information received in the previous two steps by choosing the minimum cost.
For the graph given above, possible routing tables for various nodes after they have stabilized, are shown in the following options. Identify the correct table.
1)  Table for node A


2)  Table for node C


3) 
Table for node B


4)  Table for node D

>100 but finite  
∞  
3  
>3 and ≤100 
Discuss it
Question 16 
The cyclomatic complexity of the flow graph of a program provides
an upper bound for the number of tests that must be conducted to ensure that all statements have been executed at most once  
a lower bound for the number of tests that must be conducted to ensure that all statements have been executed at most once  
an upper bound for the number of tests that must be conducted to ensure that all statements have been executed at least once  
a lower bound for the number of tests that must be conducted to ensure that all statements have been executed at least once 
Discuss it
Question 17 
What is the largest integer m such that every simple connected graph with n vertices and n edges contains at least m different spanning trees?
1  
2  
3  
n 
Discuss it
Question 17 Explanation:
A graph is connected iff all nodes can be traversed from each node. For a graph with n nodes, there will be n1 minimum number of edges.
Given that there are n edges, that means a cycle is there in the graph.
The simplex graph with these conditions may be:
Now we can make a different spanning tree by removing one edge from the cycle, one at a time.
Minimum cycle length can be 3, So, there must be atleast 3 spanning trees in any such Graph.
Given that there are n edges, that means a cycle is there in the graph.
The simplex graph with these conditions may be:
Now we can make a different spanning tree by removing one edge from the cycle, one at a time.
Minimum cycle length can be 3, So, there must be atleast 3 spanning trees in any such Graph.
Question 18 
For the undirected, weighted graph given below, which of the following sequences of edges represents a correct execution of Prim's algorithm to construct a Minimum Spanning Tree?
(a, b), (d, f), (f, c), (g, i), (d, a), (g, h), (c, e), (f, h)  
(c, e), (c, f), (f, d), (d, a), (a, b), (g, h), (h, f), (g, i)  
(d, f), (f, c), (d, a), (a, b), (c, e), (f, h), (g, h), (g, i)  
(h, g), (g, i), (h, f), (f, c), (f, d), (d, a), (a, b), (c, e) 
Discuss it
Question 18 Explanation:
In prims algorithm we start with any node and keep on exploring minimum cost neighbors of nodes already covered.
Question 19 
Consider a directed graph with n vertices and m edges such that all edges have same edge weights. Find the complexity of the best known algorithm to compute the minimum spanning tree of the graph?
O(m+n)  
O(m logn)  
O(mn)  
O(n logm)

Discuss it
Question 19 Explanation:
It’s a special case in which all edge weights are equal, so dfs would work and resultant depth first tree would be the spanning tree. So the answer would be O(m+n).
Question 20 
You are given a graph containing n vertices and m edges and given that the graph doesn’t contain cycle of odd length. Time Complexity of the best known algorithm to find out whether the graph is bipartite or not is ?
O(m+n)  
O(1)  
O(mn)  
O(n2)

Discuss it
Question 20 Explanation:
It is by definition that a graph is bipartite iff it does not contain odd length cycles.
So the answer is O(1).
For more background reading, check this link https://proofwiki.org/wiki/Graph_is_Bipartite_iff_No_Odd_Cycles
For more background reading, check this link https://proofwiki.org/wiki/Graph_is_Bipartite_iff_No_Odd_Cycles
Question 21 
Let G be a simple graph with 20 vertices and 8 components. If we delete a vertex in G, then number of components in G should lie between ____.
8 and 20  
8 and 19  
7 and 19  
7 and 20 
Discuss it
Question 21 Explanation:
Case 1: If the vertex we are deleting from G is an isolated vertex, which is a component by itself, then number of components in G becomes 7.
Case 2: If G is a start Graph, then by deleting the cut vertex of G, we get 19 components.
Hence, number of components in G should lie between 7 and 19.
Case 2: If G is a start Graph, then by deleting the cut vertex of G, we get 19 components.
Hence, number of components in G should lie between 7 and 19.
There are 21 questions to complete.