Changeset 2381:0248790c66ea in lemon-0.x for lemon/list_graph.h
- Timestamp:
- 03/01/07 17:47:23 (17 years ago)
- Branch:
- default
- Phase:
- public
- Convert:
- svn:c9d7d8f5-90d6-0310-b91f-818b3a526b0e/lemon/trunk@3212
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
lemon/list_graph.h
r2343 r2381 528 528 } 529 529 virtual void build() { 530 NodeNotifier* notifier = getNotifier();530 NodeNotifier* _notifier = notifier(); 531 531 Node node; 532 532 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)) { 534 535 nodes.push_back(node); 535 536 } … … 539 540 } 540 541 virtual void clear() { 541 NodeNotifier* notifier = getNotifier();542 NodeNotifier* _notifier = notifier(); 542 543 Node node; 543 for (notifier->first(node); node != INVALID; notifier->next(node)) { 544 for (_notifier->first(node); node != INVALID; 545 _notifier->next(node)) { 544 546 snapshot.eraseNode(node); 545 547 } … … 578 580 } 579 581 virtual void build() { 580 EdgeNotifier* notifier = getNotifier();582 EdgeNotifier* _notifier = notifier(); 581 583 Edge edge; 582 584 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)) { 584 587 edges.push_back(edge); 585 588 } … … 589 592 } 590 593 virtual void clear() { 591 EdgeNotifier* notifier = getNotifier();594 EdgeNotifier* _notifier = notifier(); 592 595 Edge edge; 593 for ( notifier->first(edge); edge != INVALID;notifier->next(edge)) {596 for (_notifier->first(edge); edge != INVALID; _notifier->next(edge)) { 594 597 snapshot.eraseEdge(edge); 595 598 } … … 640 643 void attach(ListGraph &_graph) { 641 644 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())); 644 647 } 645 648 … … 912 915 void firstInc(UEdge &e, bool& d, const Node& v) const { 913 916 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 } 916 924 } 917 925 void nextInc(UEdge &e, bool& d) const { 918 926 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 } 921 934 } 922 935 … … 1262 1275 } 1263 1276 virtual void build() { 1264 NodeNotifier* notifier = getNotifier();1277 NodeNotifier* _notifier = notifier(); 1265 1278 Node node; 1266 1279 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)) { 1268 1282 nodes.push_back(node); 1269 1283 } … … 1273 1287 } 1274 1288 virtual void clear() { 1275 NodeNotifier* notifier = getNotifier();1289 NodeNotifier* _notifier = notifier(); 1276 1290 Node node; 1277 for (notifier->first(node); node != INVALID; notifier->next(node)) { 1291 for (_notifier->first(node); node != INVALID; 1292 _notifier->next(node)) { 1278 1293 snapshot.eraseNode(node); 1279 1294 } … … 1312 1327 } 1313 1328 virtual void build() { 1314 UEdgeNotifier* notifier = getNotifier();1329 UEdgeNotifier* _notifier = notifier(); 1315 1330 UEdge edge; 1316 1331 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)) { 1318 1334 edges.push_back(edge); 1319 1335 } … … 1323 1339 } 1324 1340 virtual void clear() { 1325 UEdgeNotifier* notifier = getNotifier();1341 UEdgeNotifier* _notifier = notifier(); 1326 1342 UEdge edge; 1327 for (notifier->first(edge); edge != INVALID; notifier->next(edge)) { 1343 for (_notifier->first(edge); edge != INVALID; 1344 _notifier->next(edge)) { 1328 1345 snapshot.eraseUEdge(edge); 1329 1346 } … … 1374 1391 void attach(ListUGraph &_graph) { 1375 1392 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())); 1378 1395 } 1379 1396 … … 2040 2057 } 2041 2058 virtual void build() { 2042 NodeNotifier* notifier = getNotifier();2059 NodeNotifier* _notifier = notifier(); 2043 2060 Node node; 2044 2061 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)) { 2046 2064 nodes.push_back(node); 2047 2065 } … … 2051 2069 } 2052 2070 virtual void clear() { 2053 NodeNotifier* notifier = getNotifier();2071 NodeNotifier* _notifier = notifier(); 2054 2072 Node node; 2055 for (notifier->first(node); node != INVALID; notifier->next(node)) { 2073 for (_notifier->first(node); node != INVALID; 2074 _notifier->next(node)) { 2056 2075 snapshot.eraseNode(node); 2057 2076 } … … 2090 2109 } 2091 2110 virtual void build() { 2092 UEdgeNotifier* notifier = getNotifier();2111 UEdgeNotifier* _notifier = notifier(); 2093 2112 UEdge edge; 2094 2113 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)) { 2096 2116 edges.push_back(edge); 2097 2117 } … … 2101 2121 } 2102 2122 virtual void clear() { 2103 UEdgeNotifier* notifier = getNotifier();2123 UEdgeNotifier* _notifier = notifier(); 2104 2124 UEdge edge; 2105 for (notifier->first(edge); edge != INVALID; notifier->next(edge)) { 2125 for (_notifier->first(edge); edge != INVALID; 2126 _notifier->next(edge)) { 2106 2127 snapshot.eraseUEdge(edge); 2107 2128 } … … 2152 2173 void attach(ListBpUGraph &_graph) { 2153 2174 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())); 2156 2177 } 2157 2178
Note: See TracChangeset
for help on using the changeset viewer.