Graphs - BFS
What is a Graph?
-
A Graph is a collection of nodes (called vertices) connected by edges.
-
Graphs can be:
-
Undirected (edges have no direction) or
-
Directed (Digraph) (edges have a direction).
-
-
Graphs can be weighted (edges have weights/costs) or unweighted.
How to Represent a Graph in Computers?
Main ways to represent:
-
Adjacency Matrix:
-
A 2D array
G[V][V]
whereV
= number of vertices. -
G[i][j] = 1
if there is an edge between vertexi
andj
, else0
. -
Good for dense graphs.
-
Adjacency List:
-
An array of lists.
-
Each element (vertex) points to a list of vertices it is connected to.
-
Good for sparse graphs (uses less memory).
Algorithms for Graph Traversal
Two popular traversals:
Traversal | Meaning | Method |
---|---|---|
BFS (Breadth-First Search) | Visit neighbors level by level | Queue |
DFS (Depth-First Search) | Explore as deep as possible before backtracking | Stack or Recursion |
BFS (Breadth-First Search) Algorithm
Input: Graph, Starting Vertex
Output: Traverse graph level-wise
Algorithm:
-
Create a queue and enqueue the starting vertex.
-
Mark the starting vertex as visited.
-
While the queue is not empty:
-
Dequeue a vertex and process it.
-
Enqueue all its adjacent (unvisited) vertices.
-
Mark them as visited.
Comments
Post a Comment