
- Graph Theory - Home
- Graph Theory - Introduction
- Graph Theory - History
- Graph Theory - Fundamentals
- Graph Theory - Applications
- Types of Graphs
- Graph Theory - Types of Graphs
- Graph Theory - Simple Graphs
- Graph Theory - Multi-graphs
- Graph Theory - Directed Graphs
- Graph Theory - Weighted Graphs
- Graph Theory - Bipartite Graphs
- Graph Theory - Complete Graphs
- Graph Theory - Subgraphs
- Graph Theory - Trees
- Graph Theory - Forests
- Graph Theory - Planar Graphs
- Graph Theory - Hypergraphs
- Graph Theory - Infinite Graphs
- Graph Theory - Random Graphs
- Graph Representation
- Graph Theory - Graph Representation
- Graph Theory - Adjacency Matrix
- Graph Theory - Adjacency List
- Graph Theory - Incidence Matrix
- Graph Theory - Edge List
- Graph Theory - Compact Representation
- Graph Theory - Incidence Structure
- Graph Theory - Matrix-Tree Theorem
- Graph Properties
- Graph Theory - Basic Properties
- Graph Theory - Coverings
- Graph Theory - Matchings
- Graph Theory - Independent Sets
- Graph Theory - Traversability
- Graph Theory Connectivity
- Graph Theory - Connectivity
- Graph Theory - Vertex Connectivity
- Graph Theory - Edge Connectivity
- Graph Theory - k-Connected Graphs
- Graph Theory - 2-Vertex-Connected Graphs
- Graph Theory - 2-Edge-Connected Graphs
- Graph Theory - Strongly Connected Graphs
- Graph Theory - Weakly Connected Graphs
- Graph Theory - Connectivity in Planar Graphs
- Graph Theory - Connectivity in Dynamic Graphs
- Special Graphs
- Graph Theory - Regular Graphs
- Graph Theory - Complete Bipartite Graphs
- Graph Theory - Chordal Graphs
- Graph Theory - Line Graphs
- Graph Theory - Complement Graphs
- Graph Theory - Graph Products
- Graph Theory - Petersen Graph
- Graph Theory - Cayley Graphs
- Graph Theory - De Bruijn Graphs
- Graph Algorithms
- Graph Theory - Graph Algorithms
- Graph Theory - Breadth-First Search
- Graph Theory - Depth-First Search (DFS)
- Graph Theory - Dijkstra's Algorithm
- Graph Theory - Bellman-Ford Algorithm
- Graph Theory - Floyd-Warshall Algorithm
- Graph Theory - Johnson's Algorithm
- Graph Theory - A* Search Algorithm
- Graph Theory - Kruskal's Algorithm
- Graph Theory - Prim's Algorithm
- Graph Theory - Borůvka's Algorithm
- Graph Theory - Ford-Fulkerson Algorithm
- Graph Theory - Edmonds-Karp Algorithm
- Graph Theory - Push-Relabel Algorithm
- Graph Theory - Dinic's Algorithm
- Graph Theory - Hopcroft-Karp Algorithm
- Graph Theory - Tarjan's Algorithm
- Graph Theory - Kosaraju's Algorithm
- Graph Theory - Karger's Algorithm
- Graph Coloring
- Graph Theory - Coloring
- Graph Theory - Edge Coloring
- Graph Theory - Total Coloring
- Graph Theory - Greedy Coloring
- Graph Theory - Four Color Theorem
- Graph Theory - Coloring Bipartite Graphs
- Graph Theory - List Coloring
- Advanced Topics of Graph Theory
- Graph Theory - Chromatic Number
- Graph Theory - Chromatic Polynomial
- Graph Theory - Graph Labeling
- Graph Theory - Planarity & Kuratowski's Theorem
- Graph Theory - Planarity Testing Algorithms
- Graph Theory - Graph Embedding
- Graph Theory - Graph Minors
- Graph Theory - Isomorphism
- Spectral Graph Theory
- Graph Theory - Graph Laplacians
- Graph Theory - Cheeger's Inequality
- Graph Theory - Graph Clustering
- Graph Theory - Graph Partitioning
- Graph Theory - Tree Decomposition
- Graph Theory - Treewidth
- Graph Theory - Branchwidth
- Graph Theory - Graph Drawings
- Graph Theory - Force-Directed Methods
- Graph Theory - Layered Graph Drawing
- Graph Theory - Orthogonal Graph Drawing
- Graph Theory - Examples
- Computational Complexity of Graph
- Graph Theory - Time Complexity
- Graph Theory - Space Complexity
- Graph Theory - NP-Complete Problems
- Graph Theory - Approximation Algorithms
- Graph Theory - Parallel & Distributed Algorithms
- Graph Theory - Algorithm Optimization
- Graphs in Computer Science
- Graph Theory - Data Structures for Graphs
- Graph Theory - Graph Implementations
- Graph Theory - Graph Databases
- Graph Theory - Query Languages
- Graph Algorithms in Machine Learning
- Graph Neural Networks
- Graph Theory - Link Prediction
- Graph-Based Clustering
- Graph Theory - PageRank Algorithm
- Graph Theory - HITS Algorithm
- Graph Theory - Social Network Analysis
- Graph Theory - Centrality Measures
- Graph Theory - Community Detection
- Graph Theory - Influence Maximization
- Graph Theory - Graph Compression
- Graph Theory Real-World Applications
- Graph Theory - Network Routing
- Graph Theory - Traffic Flow
- Graph Theory - Web Crawling Data Structures
- Graph Theory - Computer Vision
- Graph Theory - Recommendation Systems
- Graph Theory - Biological Networks
- Graph Theory - Social Networks
- Graph Theory - Smart Grids
- Graph Theory - Telecommunications
- Graph Theory - Knowledge Graphs
- Graph Theory - Game Theory
- Graph Theory - Urban Planning
- Graph Theory Useful Resources
- Graph Theory - Quick Guide
- Graph Theory - Useful Resources
- Graph Theory - Discussion
Graph Theory - Bipartite Graphs
Bipartite Graphs
A bipartite graph is a type of graph where the vertices can be divided into two disjoint and independent sets, U and V, such that every edge connects a vertex in U to a vertex in V.
Bipartite graphs are also known as bigraphs. These graphs are used in various applications like modeling relationships between two different classes of objects, such as jobs and workers, or students and courses.
Example
Consider a bipartite graph where U = {A, B, C} and V = {1, 2, 3}, and the edges are E = {(A, 1), (A, 2), (B, 2), (C, 3)}. This graph shows the connections between two distinct sets of vertices.

Properties of Bipartite Graphs
Bipartite graphs have several important properties that distinguish them from other types of graphs.
No Odd-Length Cycles
A graph is bipartite if and only if it does not contain any odd-length cycles. This means that any cycle in a bipartite graph must have an even number of edges.
Two-Colorability
A bipartite graph can be colored using two colors such that no two adjacent vertices share the same color. This property is known as two-colorability and is a key characteristic of bipartite graphs.
Matching and Perfect Matching
In a bipartite graph, a matching is a set of edges without common vertices. A perfect matching is a matching that covers all vertices of the graph. Bipartite graphs are often analyzed for maximum matching problems.
Complete Bipartite Graph
A complete bipartite graph is a bipartite graph where every vertex in set U is connected to every vertex in set V. It is denoted as K(m, n), where m and n are the sizes of the two sets.

Representation of Bipartite Graphs
Bipartite graphs can be represented using adjacency matrices, adjacency lists, and incidence matrices.
Adjacency Matrix Representation
An adjacency matrix for a bipartite graph is a rectangular matrix where the rows represent vertices from set U and the columns represent vertices from set V. The entry a[i][j] is 1 if there is an edge between vertex U[i] and vertex V[j], otherwise it is 0.
Example
For the bipartite graph with vertices U = {A, B, C}, V = {1, 2, 3}, and edges E = {(A, 1), (A, 2), (B, 2), (C, 3)}, the adjacency matrix would be −
1 | 2 | 3 | |
A | 1 | 1 | 0 |
B | 0 | 1 | 0 |
C | 0 | 0 | 1 |
Adjacency List Representation
An adjacency list for a bipartite graph consists of lists where each vertex in set U points to its adjacent vertices in set V, and vice versa.
Example
For the bipartite graph with vertices U = {A, B, C}, V = {1, 2, 3}, and edges E = {(A, 1), (A, 2), (B, 2), (C, 3)}, the adjacency list representation would be −
- A: [1, 2]
- B: [2]
- C: [3]
- 1: [A]
- 2: [A, B]
- 3: [C]
Incidence Matrix Representation
An incidence matrix for a bipartite graph is a matrix where the rows represent the vertices and the columns represent the edges. The entry a[i][j] is 1 if vertex i is incident to edge j, otherwise it is 0.
Example
For the bipartite graph with vertices U = {A, B, C}, V = {1, 2, 3}, and edges E = {(A, 1), (A, 2), (B, 2), (C, 3)}, the incidence matrix would be −
e1 (A-1) | e2 (A-2) | e3 (B-2) | e4 (C-3) | |
A | 1 | 1 | 0 | 0 |
B | 0 | 0 | 1 | 0 |
C | 0 | 0 | 0 | 1 |
1 | 1 | 0 | 0 | 0 |
2 | 0 | 1 | 1 | 0 |
3 | 0 | 0 | 0 | 1 |
Algorithms for Bipartite Graphs
Several algorithms are specifically designed to handle problems in bipartite graphs, such as testing bipartiteness, finding matchings, and solving network flow problems.
Bipartiteness Test
To test whether a given graph is bipartite, one can use a graph traversal algorithm like BFS or DFS to check if the graph can be colored using two colors.
Breadth-First Search (BFS) Approach
Using BFS, we can start from any vertex and attempt to color the graph using two colors. If we find a vertex that has the same color as one of its neighbors, the graph is not bipartite.
Example
Consider the graph with vertices V = {A, B, C, D, E} and edges E = {(A, B), (A, C), (B, D), (C, D), (D, E)}. Starting from vertex A and using BFS, we can attempt to color the graph.
Depth-First Search (DFS) Approach
DFS can also be used for the bipartiteness test by coloring vertices during the traversal. The process involves recursively visiting adjacent vertices and coloring them alternately. If a conflict arises, the graph is not bipartite.