Data Structure Multiple Choice Questions on “Depth First Search”.
1. Depth First Search is equivalent to which of the traversal in the Binary Trees?
a) Pre-order Traversal
b) Post-order Traversal
c) Level-order Traversal
d) In-order Traversal
Answer: a
Clarification: In Depth First Search, we explore all the nodes aggressively to one path and then backtrack to the node. Hence, it is equivalent to the pre-order traversal of a Binary Tree.
2. Time Complexity of DFS is? (V – number of vertices, E – number of edges)
a) O(V + E)
b) O(V)
c) O(E)
d) O(V*E)
Answer: a
Clarification: The Depth First Search explores every node once and every edge once (in worst case), so it’s time complexity is O(V + E).
3. The Data structure used in standard implementation of Breadth First Search is?
a) Stack
b) Queue
c) Linked List
d) Tree
Answer: a
Clarification: The Depth First Search is implemented using recursion. So, stack can be used as data structure to implement depth first search.
4. The Depth First Search traversal of a graph will result into? Answer: b 5. A person wants to visit some places. He starts from a vertex and then wants to visit every vertex till it finishes from one vertex, backtracks and then explore other vertex from same vertex. What algorithm he should use? Answer: a 6. Which of the following is not an application of Depth First Search? 7. When the Depth First Search of a graph is unique? Answer: b 8. Regarding implementation of Depth First Search using stacks, what is the maximum distance between two nodes present in the stack? (considering each edge length 1) Answer: a 9. In Depth First Search, how many times a node is visited? Answer: c Multiple Choice Questions and Answers.
a) Linked List
b) Tree
c) Graph with back edges
d) Array
Clarification: The Depth First Search will make a graph which don’t have back edges (a tree) which is known as Depth First Tree.
a) Depth First Search
b) Breadth First Search
c) Trim’s algorithm
d) Kruskal’s Algorithm
Clarification: This is the definition of the Depth First Search. Exploring a node, then aggressively finding nodes till it is not able to find any node.
a) For generating topological sort of a graph
b) For generating Strongly Connected Components of a directed graph
c) Detecting cycles in the graph
d) Peer to Peer Networks
Answer: d
Clarification: Depth First Search is used in the Generation of topological sorting, Strongly Connected Components of a directed graph and to detect cycles in the graph. Breadth First Search is used in peer to peer networks to find all neighbourhood nodes.
a) When the graph is a Binary Tree
b) When the graph is a Linked List
c) When the graph is a n-ary Tree
d) When the graph is a ternary Tree
Clarification: When Every node will have one successor then the Depth First Search is unique. In all other cases, when it will have more than one successor, it can choose any of them in arbitrary order.
a) Can be anything
b) 0
c) At most 1
d) Insufficient Information
Clarification: In the stack, at a time, there can be nodes which can differ in many levels. So, it can be the maximum distance between two nodes in the graph.
a) Once
b) Twice
c) Equivalent to number of indegree of the node
d) Thrice
Clarification: In Depth First Search, we have to see whether the node is visited or not by it’s ancestor. If it is visited, we won’t let it enter it in the stack.