lemon/list_graph.h
changeset 908 10242c611190
parent 788 c92296660262
child 1021 a12cca3ad15a
child 1150 81f70097df81
equal deleted inserted replaced
28:a597e7937dba 29:8182b909d421
     1 /* -*- mode: C++; indent-tabs-mode: nil; -*-
     1 /* -*- mode: C++; indent-tabs-mode: nil; -*-
     2  *
     2  *
     3  * This file is a part of LEMON, a generic C++ optimization library.
     3  * This file is a part of LEMON, a generic C++ optimization library.
     4  *
     4  *
     5  * Copyright (C) 2003-2009
     5  * Copyright (C) 2003-2010
     6  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
     6  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
     7  * (Egervary Research Group on Combinatorial Optimization, EGRES).
     7  * (Egervary Research Group on Combinatorial Optimization, EGRES).
     8  *
     8  *
     9  * Permission to use, modify and distribute this software is granted
     9  * Permission to use, modify and distribute this software is granted
    10  * provided that this copyright notice appears in all copies. For
    10  * provided that this copyright notice appears in all copies. For
   444     ///
   444     ///
   445     ///\note The moved arcs are joined to node \c u using changeSource()
   445     ///\note The moved arcs are joined to node \c u using changeSource()
   446     ///or changeTarget(), thus \c ArcIt and \c OutArcIt iterators are
   446     ///or changeTarget(), thus \c ArcIt and \c OutArcIt iterators are
   447     ///invalidated for the outgoing arcs of node \c v and \c InArcIt
   447     ///invalidated for the outgoing arcs of node \c v and \c InArcIt
   448     ///iterators are invalidated for the incomming arcs of \c v.
   448     ///iterators are invalidated for the incomming arcs of \c v.
   449     ///Moreover all iterators referencing node \c v or the removed 
   449     ///Moreover all iterators referencing node \c v or the removed
   450     ///loops are also invalidated. Other iterators remain valid.
   450     ///loops are also invalidated. Other iterators remain valid.
   451     ///
   451     ///
   452     ///\warning This functionality cannot be used together with the Snapshot
   452     ///\warning This functionality cannot be used together with the Snapshot
   453     ///feature.
   453     ///feature.
   454     void contract(Node u, Node v, bool r = true)
   454     void contract(Node u, Node v, bool r = true)
   550     /// Class to make a snapshot of the digraph and restore it later.
   550     /// Class to make a snapshot of the digraph and restore it later.
   551     ///
   551     ///
   552     /// The newly added nodes and arcs can be removed using the
   552     /// The newly added nodes and arcs can be removed using the
   553     /// restore() function.
   553     /// restore() function.
   554     ///
   554     ///
   555     /// \note After a state is restored, you cannot restore a later state, 
   555     /// \note After a state is restored, you cannot restore a later state,
   556     /// i.e. you cannot add the removed nodes and arcs again using
   556     /// i.e. you cannot add the removed nodes and arcs again using
   557     /// another Snapshot instance.
   557     /// another Snapshot instance.
   558     ///
   558     ///
   559     /// \warning Node and arc deletions and other modifications (e.g.
   559     /// \warning Node and arc deletions and other modifications (e.g.
   560     /// reversing, contracting, splitting arcs or nodes) cannot be
   560     /// reversing, contracting, splitting arcs or nodes) cannot be
  1305     /// then the newly created loops are removed.
  1305     /// then the newly created loops are removed.
  1306     ///
  1306     ///
  1307     /// \note The moved edges are joined to node \c a using changeU()
  1307     /// \note The moved edges are joined to node \c a using changeU()
  1308     /// or changeV(), thus all edge and arc iterators whose base node is
  1308     /// or changeV(), thus all edge and arc iterators whose base node is
  1309     /// \c b are invalidated.
  1309     /// \c b are invalidated.
  1310     /// Moreover all iterators referencing node \c b or the removed 
  1310     /// Moreover all iterators referencing node \c b or the removed
  1311     /// loops are also invalidated. Other iterators remain valid.
  1311     /// loops are also invalidated. Other iterators remain valid.
  1312     ///
  1312     ///
  1313     ///\warning This functionality cannot be used together with the
  1313     ///\warning This functionality cannot be used together with the
  1314     ///Snapshot feature.
  1314     ///Snapshot feature.
  1315     void contract(Node a, Node b, bool r = true) {
  1315     void contract(Node a, Node b, bool r = true) {
  1362     /// Class to make a snapshot of the graph and restore it later.
  1362     /// Class to make a snapshot of the graph and restore it later.
  1363     ///
  1363     ///
  1364     /// The newly added nodes and edges can be removed
  1364     /// The newly added nodes and edges can be removed
  1365     /// using the restore() function.
  1365     /// using the restore() function.
  1366     ///
  1366     ///
  1367     /// \note After a state is restored, you cannot restore a later state, 
  1367     /// \note After a state is restored, you cannot restore a later state,
  1368     /// i.e. you cannot add the removed nodes and edges again using
  1368     /// i.e. you cannot add the removed nodes and edges again using
  1369     /// another Snapshot instance.
  1369     /// another Snapshot instance.
  1370     ///
  1370     ///
  1371     /// \warning Node and edge deletions and other modifications
  1371     /// \warning Node and edge deletions and other modifications
  1372     /// (e.g. changing the end-nodes of edges or contracting nodes)
  1372     /// (e.g. changing the end-nodes of edges or contracting nodes)