![]() |
VOOZH | about |
Graphs, a fundamental concept in computer science and mathematics, serve as powerful tools for modeling and solving a myriad of real-world problems. As aspirants gear up for the GATE Exam 2024, a comprehensive understanding of graph data structures becomes paramount. These notes aim to provide a concise and illuminating guide to graph data structures, unraveling the principles, representations, and algorithms associated with them, all of which are essential for mastering this topic in the GATE examination.
Table of Content
A Graph is a non-linear data structure consisting of vertices and edges. The vertices are sometimes also referred to as nodes and the edges are lines or arcs that connect any two nodes in the graph. More formally a Graph is composed of a set of vertices( V ) and a set of edges( E ). The graph is denoted by G(V, E).
TheBreadth First Search (BFS)algorithm is used to search a graph data structure for a node that meets a set of criteria. It starts at the root of the graph and visits all nodes at the current depth level before moving on to the nodes at the next depth level.
Time Complexity: O(V+E), where V is the number of nodes and E is the number of edges.
Auxiliary Space: O(V)
Depth-first search (DFS) is an algorithm for traversing or searching tree or graph data structures. The algorithm starts at the root node (selecting some arbitrary node as the root node in the case of a graph) and explores as far as possible along each branch before backtracking.
Time complexity: O(V + E), where V is the number of vertices and E is the number of edges in the graph.
Auxiliary Space: O(V + E), since an extra visited array of size V is required, And stack size for iterative call to DFS function.
A graph is known as a null graph if there are no edges in the graph.
Graph having only a single vertex, it is also the smallest graph possible.
π LightboxA graph in which edges do not have any direction. That is the nodes are unordered pairs in the definition of every edge.
A graph in which edge has direction. That is the nodes are ordered pairs in the definition of every edge.
π LightboxThe graph in which from one node we can visit any other node in the graph is known as a connected graph.
The graph in which at least one node is not reachable from a node is known as a disconnected graph.
π ImageThe graph in which the degree of every vertex is equal to K is called K regular graph.
The graph in which from each node there is an edge to each other node.
π LightboxThe graph in which the graph is a cycle in itself, the degree of each vertex is 2.
A graph containing at least one cycle is known as a Cyclic graph.
π ImageA Directed Graph that does not contain any cycle.
A graph in which vertex can be divided into two sets such that vertex in each set does not contain any edge between them.
π Lightbox13. Weighted Graph
Here are the two most common ways to represent a graph :
An adjacency matrix is a way of representing a graph as a matrix of boolean (0βs and 1βs).
Letβs assume there are n vertices in the graph So, create a 2D matrix adjMat[n][n] having dimension n x n.
The below figure shows a directed graph. Initially, the entire Matrix is ββinitialized to 0. If there is an edge from source to destination, we insert 1 for that particular adjMat[destination].
An array of Lists is used to store edges between two vertices. The size of array is equal to the number of vertices (i.e, n). Each index in this array represents a specific vertex in the graph. The entry at the index i of the array contains a linked list containing the vertices that are adjacent to vertex i.
Letβs assume there are n vertices in the graph So, create an array of list of size n as adjList[n].
The below directed graph has 3 vertices. So, an array of list will be created of size 3, where each indices represent the vertices. Now, vertex 0 has no neighbours. For vertex 1, it has two neighbour (i.e, 0 and 2) So, insert vertices 0 and 2 at indices 1 of array. Similarly, for vertex 2, insert its neighbours in array of list.
A Graph is a non-linear data structure consisting of nodes and edges. The nodes are sometimes also referred to as vertices and the edges are lines or arcs that connect any two nodes in the graph.
The basic properties of a graph include:
1.Consider the tree arcs of a BFS traversal from a source node W in an unweighted, connected, undirected graph. The tree T formed by the tree arcs is a data structure for computing.[GATE CSE 2014 Set 2]
(A) the shortest path between every pair of vertices.
(B) the shortest path from W to every vertex in the graph.
(C) the shortest paths from W to only those nodes that are leaves of T.
(D) the longest path in the graph.
Solution: Correct answer is (B)
2.Traversal of a graph is somewhat different from the tree because[GATE CSE 2006 Set 1]
(A) There can be a loop in a graph, so we must maintain a visited flag for every vertex
(B) DFS of a graph uses the stack, but the inorder traversal of a tree is recursive
(C) BFS of a graph uses a queue, but a time-efficient BFS of a tree is recursive.
(D) All of the above
Solution: Correct answer is (A)
Explanation: There can be a loop in a graph, and due to this, we must maintain a visited flag for every vertex.
3. What are the suitable for the following algorithms?[GATE CSE 2013 Set 2]
1) Breadth-First Search
2) Depth First Search
3) Prim's Minimum Spanning Tree
4) Kruskal's Minimum Spanning Tree
(A)
1) Stack
2) Queue
3) Priority Queue
4) Union Find
(B)
1) Queue
2) Stack
3) Priority Queue
4) Union Find
(C)
1) Stack
2) Queue
3) Union Find
4) Priority Queue
(D)
1) Priority Queue
2) Queue
3) Stack
4) Union Find
Solution:(B)
Explanation: 1) is used in
2) is used in
3) Priority Queue is used in.
4) is used in .
4. Let G be a weighted graph with edge weights greater than one and G' be the graph constructed by squaring the weights of edges in G. LetT and T' be the minimum spanning trees of G and G' respectively, with total weights t and t'. Which of the following statements is TRUE?[GATE CSE 2020 ]
(A) T' = T with total weight t' = t^2
(B) T' = T with total weight t' < t^2
(C) T' =t- T but total weight t' = t^2
(D) None of these
Solution:(D)
5. The Breadth-First Search algorithm has been implemented with the help of a queue. What is a possible order of visiting the nodes of the following graph is
(A) NQMPOR
(B) QMNPOR
(C) QMNPRO
(D) MNOPQR
Solution:(C)
Explanation: Option (A) is NQMPOR. It cannot be BFS because P is visited before O here.
Option (D) is MNOPQR. It cannot be a BFS because the traversal begins with M, but O has been visited before N and Q.
In , every adjacent must be called before adjacent of adjacent.
(B) and (C) correspond to QMNP. Before N and P, M had been added to the queue (because M comes before NP in QMNP). R is placed in the line before N and P's neighbors because it is M's neighbor (which is O). As a result, R is visited first, followed by O.
6. Let G be an undirected graph. Consider a depth-first traversal of G, where T is the depth-first search tree that results. Let u be the first new (unvisited) vertex visited after u in the traversal, and v be its first new (unvisited) vertex visited after u. Which of the assertions below is always true?[GATE CSE 2014 ]
(A) In G, u,v must be an edge, while in T, u is a descendent of v.
(B) In G, u,v must be an edge, while in T, v is a descendent of u.
(C) If u,v in G is not an edge, then u in T is a leaf
(D) If u,v in G is not an edge, then u and v in T must have the same parent.
Solution:(C)
Explanation:
In , if 'v' is visited
after 'u,' one of the following is true.
1) (u, v) is an edge.
u
/ \
v w
/ / \
x y z
2) A leaf node is 'u.'
w
/ \
x v
/ / \
u y z
In DFS, after we have visited a node, we first go back to all children who were not visited. If no children are left unvisited(u is a leaf), then control goes back to the parent, and the parent then visits the subsequent unvisited children.
7. Which of the two traversals (BFS and DFS) may be used to find if there is a path from s to t given two vertices in a graph s and t?[GATE CSE 2014 Set 2]
(A) Only BFS
(B) Only DFS
(C) Both BFS and DFS
(D) Neither BFS nor DFS
Solution:(C)
Explanation: Both traversals can be used to see if there is a path from s to t.
8. The statement written below is true or false?[GATE CSE 2021]
If a directed graph's DFS contains a back edge, any other directed graph's DFS will also have at least a single back edge.
(A) True
(B) False
Solution:(A)
Explanation: A cycle in the graph is called its back edge. So if we get a cycle, all DFS traversals would contain at least one back edge.
9. Which of the condition written below is sufficient to detect a cycle in a directed graph?[GATE CSE 2008]
(A) There is an edge from a currently visited node to an already seen node.
(B) There is an edge from the currently visited node to an ancestor of the currently visited node in the forest of DFS.
(C) Every node is seen two times in DFS.
(D) None of the above
Solution:(B)
Explanation: If there is an edge from the currently visited node to an ancestor of the currently visited node in the forest of DFS, it means a cycle is formed. As this is an apparent condition about cycle formation, so this condition is sufficient.
10. If the finishing time f[u] > f[v] of DFS for two vertices u and v in a graph G which is directed, and u and v are in the DFS tree same as each other in the DFS forest, then u is an ancestor of v in the depth-first tree.[GATE CSE 2014 Set 2]
(A) True
(B) False
Solution:(B)
Explanation: In a graph that contains three nodes, r u and v, with edges (r; u) and (r; v), and r is the starting point for the DFS, u and v are siblings in the DFS tree; neither as the ancestor of the other.
11. Is the statement written below true or false?[GATE CSE 2015]
A DFS of a directed graph generally produces the exact number of edges of a tree, i.e., not dependent on the order in which vertices are considered for DFS.
(A) True
(B) False
Solution:(B)
Explanation: Consider the following graph. If we start from 'a', then there is one tree edge. If we start from 'b,' there is no tree edge.
aβ->b