doc/graphs.dox
changeset 979 b5fb023cdb7b
parent 921 818510fa3d99
child 986 e997802b855c
equal deleted inserted replaced
7:f5f3b081330f 8:f62f36ba5c8c
     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