Miscellaneous Graph FunctionsLEDA provides a variety of different functions to test basic properties of graphs, e.g., simple, bidirected, or acyclic. There are also functions to copy graphs, to make graphs connected, biconnected, and triconnected. A complete list of functions can be found on the Manual Page.Purpose: The main purpose of the miscellaneous graph functions is to provide the programmer a convenient way of basic functions on graphs. ExampleThe following small program shows how to use the miscellaneous graph
functions
#include <LEDA/graph/graph.h>
#include <LEDA/graph/graph_gen.h>
#include <LEDA/graph/graph_misc.h>
using namespace leda;
int main()
{
graph G;
complete_graph(G,1000);
//creates complete bidirected graph with 1000 nodes
if (Is_Simple(G))
std::cout << "G is simple" << std::endl;
else
std::cout << "There are parallel edges in G" << std::endl;
if (Is_Loopfree(G))
std::cout << "G has no loops" << std::endl;
else {
std::cout << "There are loops in G" << std::endl;
list<node> L=Delete_Loops(G);
std::cout << L.size() << " loops deleted" << std::endl;
}
if (Is_Bidirected(G))
std::cout << "G is bidirected" << std::endl;
else
std::cout << "G is not bidirected" << std::endl;
if (Is_Acyclic(G))
std::cout << "G is acyclic" << std::endl;
else {
std::cout << "There are cycles in G" << std::endl;
int numedges=G.number_of_edges();
Make_Acyclic(G);
numedges-=G.number_of_edges();
std::cout << numedges
<< " edges deleted for making G acyclic" << std::endl;
}
return 0;
}
|
See also:Manual Entries: Manual Page Miscellaneous Graph Functions
|