|
Algorithms_in_C++ 1.0.0
Set of algorithms implemented in C++.
|
Represents Bipartite graph for Hopcroft Karp implementation. More...
Public Member Functions | |
| HKGraph () | |
| Default Constructor for initialization. | |
| HKGraph (int m, int n) | |
| Constructor for initialization. More... | |
| void | addEdge (int u, int v) |
| function to add edge from u to v More... | |
| bool | bfs () |
| This function checks for the possibility of augmented path availability. More... | |
| bool | dfs (int u) |
| This functions checks whether an augmenting path is available exists beginning with free vertex u. More... | |
| int | hopcroftKarpAlgorithm () |
| This function counts the number of augmenting paths between left and right sides of the Bipartite graph. More... | |
Private Attributes | |
| int | m {} |
| m is the number of vertices on left side of Bipartite Graph | |
| int | n {} |
| n is the number of vertices on right side of Bipartite Graph | |
| const int | NIL {0} |
| const int | INF {INT_MAX} |
| std::vector< std::list< int > > | adj |
| adj[u] stores adjacents of left side and 0 is used for dummy vertex | |
| std::vector< int > | pair_u |
| value of vertex 'u' ranges from 1 to m | |
| std::vector< int > | pair_v |
| value of vertex 'v' ranges from 1 to n | |
| std::vector< int > | dist |
| dist represents the distance between vertex 'u' and vertex 'v' | |
Represents Bipartite graph for Hopcroft Karp implementation.
| graph::HKGraph::HKGraph | ( | int | m, |
| int | n | ||
| ) |
Constructor for initialization.
| m | is the number of vertices on left side of Bipartite Graph |
| n | is the number of vertices on right side of Bipartite Graph |
| void graph::HKGraph::addEdge | ( | int | u, |
| int | v | ||
| ) |
function to add edge from u to v
| u | is the position of first vertex |
| v | is the position of second vertex |
| bool graph::HKGraph::bfs | ( | ) |
This function checks for the possibility of augmented path availability.
true if there is an augmenting path available false if there is no augmenting path available | bool graph::HKGraph::dfs | ( | int | u | ) |
This functions checks whether an augmenting path is available exists beginning with free vertex u.
| u | represents position of vertex |
true if there is an augmenting path beginning with free vertex u false if there is no augmenting path beginning with free vertex u | int graph::HKGraph::hopcroftKarpAlgorithm | ( | ) |
This function counts the number of augmenting paths between left and right sides of the Bipartite graph.