7 functionalities to list the nodes and the edges of the graph as well |
7 functionalities to list the nodes and the edges of the graph as well |
8 as in incoming and outgoing edges of a given node. |
8 as in incoming and outgoing edges of a given node. |
9 |
9 |
10 |
10 |
11 Each graph should meet the |
11 Each graph should meet the |
12 \ref lemon::skeleton::StaticGraph "StaticGraph" concept. |
12 \ref lemon::concept::StaticGraph "StaticGraph" concept. |
13 This concept does not |
13 This concept does not |
14 makes it possible to change the graph (i.e. it is not possible to add |
14 makes it possible to change the graph (i.e. it is not possible to add |
15 or delete edges or nodes). Most of the graph algorithms will run on |
15 or delete edges or nodes). Most of the graph algorithms will run on |
16 these graphs. |
16 these graphs. |
17 |
17 |
18 The graphs meeting the |
18 The graphs meeting the |
19 \ref lemon::skeleton::ExtendableGraph "ExtendableGraph" |
19 \ref lemon::concept::ExtendableGraph "ExtendableGraph" |
20 concept allow node and |
20 concept allow node and |
21 edge addition. You can also "clear" (i.e. erase all edges and nodes) |
21 edge addition. You can also "clear" (i.e. erase all edges and nodes) |
22 such a graph. |
22 such a graph. |
23 |
23 |
24 In case of graphs meeting the full feature |
24 In case of graphs meeting the full feature |
25 \ref lemon::skeleton::ErasableGraph "ErasableGraph" |
25 \ref lemon::concept::ErasableGraph "ErasableGraph" |
26 concept |
26 concept |
27 you can also erase individual edges and node in arbitrary order. |
27 you can also erase individual edges and node in arbitrary order. |
28 |
28 |
29 The implemented graph structures are the following. |
29 The implemented graph structures are the following. |
30 \li \ref lemon::ListGraph "ListGraph" is the most versatile graph class. It meets |
30 \li \ref lemon::ListGraph "ListGraph" is the most versatile graph class. It meets |
31 the \ref lemon::skeleton::ErasableGraph "ErasableGraph" concept |
31 the \ref lemon::concept::ErasableGraph "ErasableGraph" concept |
32 and it also have some convenience features. |
32 and it also have some convenience features. |
33 \li \ref lemon::SmartGraph "SmartGraph" is a more memory |
33 \li \ref lemon::SmartGraph "SmartGraph" is a more memory |
34 efficient version of \ref lemon::ListGraph "ListGraph". The |
34 efficient version of \ref lemon::ListGraph "ListGraph". The |
35 price of it is that it only meets the |
35 price of it is that it only meets the |
36 \ref lemon::skeleton::ExtendableGraph "ExtendableGraph" concept, |
36 \ref lemon::concept::ExtendableGraph "ExtendableGraph" concept, |
37 so you cannot delete individual edges or nodes. |
37 so you cannot delete individual edges or nodes. |
38 \li \ref lemon::SymListGraph "SymListGraph" and |
38 \li \ref lemon::SymListGraph "SymListGraph" and |
39 \ref lemon::SymSmartGraph "SymSmartGraph" classes are very similar to |
39 \ref lemon::SymSmartGraph "SymSmartGraph" classes are very similar to |
40 \ref lemon::ListGraph "ListGraph" and \ref lemon::SmartGraph "SmartGraph". |
40 \ref lemon::ListGraph "ListGraph" and \ref lemon::SmartGraph "SmartGraph". |
41 The difference is that whenever you add a |
41 The difference is that whenever you add a |
43 They are linked together so it is possible to access the counterpart of an |
43 They are linked together so it is possible to access the counterpart of an |
44 edge. An even more important feature is that using these classes you can also |
44 edge. An even more important feature is that using these classes you can also |
45 attach data to the edges in such a way that the stored data |
45 attach data to the edges in such a way that the stored data |
46 are shared by the edge pairs. |
46 are shared by the edge pairs. |
47 \li \ref lemon::FullGraph "FullGraph" |
47 \li \ref lemon::FullGraph "FullGraph" |
48 implements a full graph. It is a \ref lemon::skeleton::StaticGraph, so you cannot |
48 implements a full graph. It is a \ref lemon::concept::StaticGraph, so you cannot |
49 change the number of nodes once it is constructed. It is extremely memory |
49 change the number of nodes once it is constructed. It is extremely memory |
50 efficient: it uses constant amount of memory independently from the number of |
50 efficient: it uses constant amount of memory independently from the number of |
51 the nodes of the graph. Of course, the size of the \ref maps "NodeMap"'s and |
51 the nodes of the graph. Of course, the size of the \ref maps "NodeMap"'s and |
52 \ref maps "EdgeMap"'s will depend on the number of nodes. |
52 \ref maps "EdgeMap"'s will depend on the number of nodes. |
53 |
53 |