COIN-OR::LEMON - Graph Library

Changeset 2381:0248790c66ea in lemon-0.x for lemon/list_graph.h


Ignore:
Timestamp:
03/01/07 17:47:23 (17 years ago)
Author:
Balazs Dezso
Branch:
default
Phase:
public
Convert:
svn:c9d7d8f5-90d6-0310-b91f-818b3a526b0e/lemon/trunk@3212
Message:

Bug fix

File:
1 edited

Legend:

Unmodified
Added
Removed
  • lemon/list_graph.h

    r2343 r2381  
    528528        }
    529529        virtual void build() {
    530           NodeNotifier* notifier = getNotifier();
     530          NodeNotifier* _notifier = notifier();
    531531          Node node;
    532532          std::vector<Node> nodes;
    533           for (notifier->first(node); node != INVALID; notifier->next(node)) {
     533          for (_notifier->first(node); node != INVALID;
     534               _notifier->next(node)) {
    534535            nodes.push_back(node);
    535536          }
     
    539540        }
    540541        virtual void clear() {
    541           NodeNotifier* notifier = getNotifier();
     542          NodeNotifier* _notifier = notifier();
    542543          Node node;
    543           for (notifier->first(node); node != INVALID; notifier->next(node)) {
     544          for (_notifier->first(node); node != INVALID;
     545               _notifier->next(node)) {
    544546            snapshot.eraseNode(node);
    545547          }
     
    578580        }
    579581        virtual void build() {
    580           EdgeNotifier* notifier = getNotifier();
     582          EdgeNotifier* _notifier = notifier();
    581583          Edge edge;
    582584          std::vector<Edge> edges;
    583           for (notifier->first(edge); edge != INVALID; notifier->next(edge)) {
     585          for (_notifier->first(edge); edge != INVALID;
     586               _notifier->next(edge)) {
    584587            edges.push_back(edge);
    585588          }
     
    589592        }
    590593        virtual void clear() {
    591           EdgeNotifier* notifier = getNotifier();
     594          EdgeNotifier* _notifier = notifier();
    592595          Edge edge;
    593           for (notifier->first(edge); edge != INVALID; notifier->next(edge)) {
     596          for (_notifier->first(edge); edge != INVALID; _notifier->next(edge)) {
    594597            snapshot.eraseEdge(edge);
    595598          }
     
    640643      void attach(ListGraph &_graph) {
    641644        graph = &_graph;
    642         node_observer_proxy.attach(graph->getNotifier(Node()));
    643         edge_observer_proxy.attach(graph->getNotifier(Edge()));
     645        node_observer_proxy.attach(graph->notifier(Node()));
     646        edge_observer_proxy.attach(graph->notifier(Edge()));
    644647      }
    645648           
     
    912915    void firstInc(UEdge &e, bool& d, const Node& v) const {
    913916      int de = nodes[v.id].first_out;
    914       e.id = de / 2;
    915       d = ((de & 1) == 1);
     917      if (de != -1 ) {
     918        e.id = de / 2;
     919        d = ((de & 1) == 1);
     920      } else {
     921        e.id = -1;
     922        d = true;
     923      }
    916924    }
    917925    void nextInc(UEdge &e, bool& d) const {
    918926      int de = (edges[(e.id * 2) | (d ? 1 : 0)].next_out);
    919       e.id = de / 2;
    920       d = ((de & 1) == 1);
     927      if (de != -1 ) {
     928        e.id = de / 2;
     929        d = ((de & 1) == 1);
     930      } else {
     931        e.id = -1;
     932        d = true;
     933      }
    921934    }
    922935   
     
    12621275        }
    12631276        virtual void build() {
    1264           NodeNotifier* notifier = getNotifier();
     1277          NodeNotifier* _notifier = notifier();
    12651278          Node node;
    12661279          std::vector<Node> nodes;
    1267           for (notifier->first(node); node != INVALID; notifier->next(node)) {
     1280          for (_notifier->first(node); node != INVALID;
     1281               _notifier->next(node)) {
    12681282            nodes.push_back(node);
    12691283          }
     
    12731287        }
    12741288        virtual void clear() {
    1275           NodeNotifier* notifier = getNotifier();
     1289          NodeNotifier* _notifier = notifier();
    12761290          Node node;
    1277           for (notifier->first(node); node != INVALID; notifier->next(node)) {
     1291          for (_notifier->first(node); node != INVALID;
     1292               _notifier->next(node)) {
    12781293            snapshot.eraseNode(node);
    12791294          }
     
    13121327        }
    13131328        virtual void build() {
    1314           UEdgeNotifier* notifier = getNotifier();
     1329          UEdgeNotifier* _notifier = notifier();
    13151330          UEdge edge;
    13161331          std::vector<UEdge> edges;
    1317           for (notifier->first(edge); edge != INVALID; notifier->next(edge)) {
     1332          for (_notifier->first(edge); edge != INVALID;
     1333               _notifier->next(edge)) {
    13181334            edges.push_back(edge);
    13191335          }
     
    13231339        }
    13241340        virtual void clear() {
    1325           UEdgeNotifier* notifier = getNotifier();
     1341          UEdgeNotifier* _notifier = notifier();
    13261342          UEdge edge;
    1327           for (notifier->first(edge); edge != INVALID; notifier->next(edge)) {
     1343          for (_notifier->first(edge); edge != INVALID;
     1344               _notifier->next(edge)) {
    13281345            snapshot.eraseUEdge(edge);
    13291346          }
     
    13741391      void attach(ListUGraph &_graph) {
    13751392        graph = &_graph;
    1376         node_observer_proxy.attach(graph->getNotifier(Node()));
    1377         edge_observer_proxy.attach(graph->getNotifier(UEdge()));
     1393        node_observer_proxy.attach(graph->notifier(Node()));
     1394        edge_observer_proxy.attach(graph->notifier(UEdge()));
    13781395      }
    13791396           
     
    20402057        }
    20412058        virtual void build() {
    2042           NodeNotifier* notifier = getNotifier();
     2059          NodeNotifier* _notifier = notifier();
    20432060          Node node;
    20442061          std::vector<Node> nodes;
    2045           for (notifier->first(node); node != INVALID; notifier->next(node)) {
     2062          for (_notifier->first(node); node != INVALID;
     2063               _notifier->next(node)) {
    20462064            nodes.push_back(node);
    20472065          }
     
    20512069        }
    20522070        virtual void clear() {
    2053           NodeNotifier* notifier = getNotifier();
     2071          NodeNotifier* _notifier = notifier();
    20542072          Node node;
    2055           for (notifier->first(node); node != INVALID; notifier->next(node)) {
     2073          for (_notifier->first(node); node != INVALID;
     2074               _notifier->next(node)) {
    20562075            snapshot.eraseNode(node);
    20572076          }
     
    20902109        }
    20912110        virtual void build() {
    2092           UEdgeNotifier* notifier = getNotifier();
     2111          UEdgeNotifier* _notifier = notifier();
    20932112          UEdge edge;
    20942113          std::vector<UEdge> edges;
    2095           for (notifier->first(edge); edge != INVALID; notifier->next(edge)) {
     2114          for (_notifier->first(edge); edge != INVALID;
     2115               _notifier->next(edge)) {
    20962116            edges.push_back(edge);
    20972117          }
     
    21012121        }
    21022122        virtual void clear() {
    2103           UEdgeNotifier* notifier = getNotifier();
     2123          UEdgeNotifier* _notifier = notifier();
    21042124          UEdge edge;
    2105           for (notifier->first(edge); edge != INVALID; notifier->next(edge)) {
     2125          for (_notifier->first(edge); edge != INVALID;
     2126               _notifier->next(edge)) {
    21062127            snapshot.eraseUEdge(edge);
    21072128          }
     
    21522173      void attach(ListBpUGraph &_graph) {
    21532174        graph = &_graph;
    2154         node_observer_proxy.attach(graph->getNotifier(Node()));
    2155         edge_observer_proxy.attach(graph->getNotifier(UEdge()));
     2175        node_observer_proxy.attach(graph->notifier(Node()));
     2176        edge_observer_proxy.attach(graph->notifier(UEdge()));
    21562177      }
    21572178           
Note: See TracChangeset for help on using the changeset viewer.