Example Maximum Cardinality Matching in General GraphsThe following program shows how the function Remark: The graph algorithms in LEDA are generic, that is, they accept graphs as well as parameterized graphs. In We use #include <LEDA/graph/graph.h> #include <LEDA/graph/mc_matching.h> using namespace leda; int main() { graph G; node n0=G.new_node(); node n1=G.new_node(); node n2=G.new_node(); node n3=G.new_node(); node n4=G.new_node(); node n5=G.new_node(); edge e0=G.new_edge(n0,n1); edge e1=G.new_edge(n1,n2); edge e2=G.new_edge(n2,n3); edge e3=G.new_edge(n3,n0); edge e4=G.new_edge(n0,n4); edge e5=G.new_edge(n3,n4); edge e6=G.new_edge(n1,n5); edge e7=G.new_edge(n2,n5); node_array<int> OSC(G); list<edge> M=MAX_CARD_MATCHING(G,OSC); bool result_correct=CHECK_MAX_CARD_MATCHING(G,M,OSC); if (result_correct) { std::cout << "Maximum Cardinality Matching:" << std::endl; edge e; forall(e,M) G.print_edge(e); std::cout << std::endl; node v; forall_nodes(v,G) { std::cout << "label"; G.print_node(v); std::cout << "=" << OSC[v] << std::endl; } } return 0; } Remark: There is a variants of |
See also:Maximum Cardinality Matching in General Graphs Manual Entries: Manual Page Maximum Cardinality Matching in General Graphs |