diff -r 096d83158d41 -r 81b47fc5c444 lemon/list_graph.h --- a/lemon/list_graph.h Fri Mar 02 17:56:22 2007 +0000 +++ b/lemon/list_graph.h Fri Mar 02 18:04:28 2007 +0000 @@ -522,16 +522,15 @@ snapshot.eraseNode(node); } virtual void erase(const std::vector& nodes) { - for (int i = 0; i < (int)nodes.size(); ++i) { + for (int i = 0; i < int(nodes.size()); ++i) { snapshot.eraseNode(nodes[i]); } } virtual void build() { - NodeNotifier* _notifier = notifier(); Node node; std::vector nodes; - for (_notifier->first(node); node != INVALID; - _notifier->next(node)) { + for (notifier()->first(node); node != INVALID; + notifier()->next(node)) { nodes.push_back(node); } for (int i = nodes.size() - 1; i >= 0; --i) { @@ -539,10 +538,9 @@ } } virtual void clear() { - NodeNotifier* _notifier = notifier(); Node node; - for (_notifier->first(node); node != INVALID; - _notifier->next(node)) { + for (notifier()->first(node); node != INVALID; + notifier()->next(node)) { snapshot.eraseNode(node); } } @@ -574,16 +572,15 @@ snapshot.eraseEdge(edge); } virtual void erase(const std::vector& edges) { - for (int i = 0; i < (int)edges.size(); ++i) { + for (int i = 0; i < int(edges.size()); ++i) { snapshot.eraseEdge(edges[i]); } } virtual void build() { - EdgeNotifier* _notifier = notifier(); Edge edge; std::vector edges; - for (_notifier->first(edge); edge != INVALID; - _notifier->next(edge)) { + for (notifier()->first(edge); edge != INVALID; + notifier()->next(edge)) { edges.push_back(edge); } for (int i = edges.size() - 1; i >= 0; --i) { @@ -591,9 +588,9 @@ } } virtual void clear() { - EdgeNotifier* _notifier = notifier(); Edge edge; - for (_notifier->first(edge); edge != INVALID; _notifier->next(edge)) { + for (notifier()->first(edge); edge != INVALID; + notifier()->next(edge)) { snapshot.eraseEdge(edge); } } @@ -1269,16 +1266,15 @@ snapshot.eraseNode(node); } virtual void erase(const std::vector& nodes) { - for (int i = 0; i < (int)nodes.size(); ++i) { + for (int i = 0; i < int(nodes.size()); ++i) { snapshot.eraseNode(nodes[i]); } } virtual void build() { - NodeNotifier* _notifier = notifier(); Node node; std::vector nodes; - for (_notifier->first(node); node != INVALID; - _notifier->next(node)) { + for (notifier()->first(node); node != INVALID; + notifier()->next(node)) { nodes.push_back(node); } for (int i = nodes.size() - 1; i >= 0; --i) { @@ -1286,10 +1282,9 @@ } } virtual void clear() { - NodeNotifier* _notifier = notifier(); Node node; - for (_notifier->first(node); node != INVALID; - _notifier->next(node)) { + for (notifier()->first(node); node != INVALID; + notifier()->next(node)) { snapshot.eraseNode(node); } } @@ -1321,16 +1316,15 @@ snapshot.eraseUEdge(edge); } virtual void erase(const std::vector& edges) { - for (int i = 0; i < (int)edges.size(); ++i) { + for (int i = 0; i < int(edges.size()); ++i) { snapshot.eraseUEdge(edges[i]); } } virtual void build() { - UEdgeNotifier* _notifier = notifier(); UEdge edge; std::vector edges; - for (_notifier->first(edge); edge != INVALID; - _notifier->next(edge)) { + for (notifier()->first(edge); edge != INVALID; + notifier()->next(edge)) { edges.push_back(edge); } for (int i = edges.size() - 1; i >= 0; --i) { @@ -1338,10 +1332,9 @@ } } virtual void clear() { - UEdgeNotifier* _notifier = notifier(); UEdge edge; - for (_notifier->first(edge); edge != INVALID; - _notifier->next(edge)) { + for (notifier()->first(edge); edge != INVALID; + notifier()->next(edge)) { snapshot.eraseUEdge(edge); } } @@ -1575,29 +1568,29 @@ } void first(UEdge& edge) const { - int aNodeId = first_anode; - while (aNodeId != -1 && aNodes[aNodeId].first_edge == -1) { - aNodeId = aNodes[aNodeId].next != -1 ? - aNodes[aNodeId].next >> 1 : -1; + int aid = first_anode; + while (aid != -1 && aNodes[aid].first_edge == -1) { + aid = aNodes[aid].next != -1 ? + aNodes[aid].next >> 1 : -1; } - if (aNodeId != -1) { - edge.id = aNodes[aNodeId].first_edge; + if (aid != -1) { + edge.id = aNodes[aid].first_edge; } else { edge.id = -1; } } void next(UEdge& edge) const { - int aNodeId = edges[edge.id].aNode >> 1; + int aid = edges[edge.id].aNode >> 1; edge.id = edges[edge.id].next_out; if (edge.id == -1) { - aNodeId = aNodes[aNodeId].next != -1 ? - aNodes[aNodeId].next >> 1 : -1; - while (aNodeId != -1 && aNodes[aNodeId].first_edge == -1) { - aNodeId = aNodes[aNodeId].next != -1 ? - aNodes[aNodeId].next >> 1 : -1; + aid = aNodes[aid].next != -1 ? + aNodes[aid].next >> 1 : -1; + while (aid != -1 && aNodes[aid].first_edge == -1) { + aid = aNodes[aid].next != -1 ? + aNodes[aid].next >> 1 : -1; } - if (aNodeId != -1) { - edge.id = aNodes[aNodeId].first_edge; + if (aid != -1) { + edge.id = aNodes[aid].first_edge; } else { edge.id = -1; } @@ -1677,45 +1670,45 @@ } Node addANode() { - int aNodeId; + int aid; if (first_free_anode == -1) { - aNodeId = aNodes.size(); + aid = aNodes.size(); aNodes.push_back(NodeT()); } else { - aNodeId = first_free_anode; + aid = first_free_anode; first_free_anode = aNodes[first_free_anode].next; } if (first_anode != -1) { - aNodes[aNodeId].next = first_anode << 1; - aNodes[first_anode].prev = aNodeId << 1; + aNodes[aid].next = first_anode << 1; + aNodes[first_anode].prev = aid << 1; } else { - aNodes[aNodeId].next = -1; + aNodes[aid].next = -1; } - aNodes[aNodeId].prev = -1; - first_anode = aNodeId; - aNodes[aNodeId].first_edge = -1; - return Node(aNodeId << 1); + aNodes[aid].prev = -1; + first_anode = aid; + aNodes[aid].first_edge = -1; + return Node(aid << 1); } Node addBNode() { - int bNodeId; + int bid; if (first_free_bnode == -1) { - bNodeId = bNodes.size(); + bid = bNodes.size(); bNodes.push_back(NodeT()); } else { - bNodeId = first_free_bnode; + bid = first_free_bnode; first_free_bnode = bNodes[first_free_bnode].next; } if (first_bnode != -1) { - bNodes[bNodeId].next = (first_bnode << 1) + 1; - bNodes[first_bnode].prev = (bNodeId << 1) + 1; + bNodes[bid].next = (first_bnode << 1) + 1; + bNodes[first_bnode].prev = (bid << 1) + 1; } else { - bNodes[bNodeId].next = -1; + bNodes[bid].next = -1; } - bNodes[bNodeId].prev = -1; - first_bnode = bNodeId; - bNodes[bNodeId].first_edge = -1; - return Node((bNodeId << 1) + 1); + bNodes[bid].prev = -1; + first_bnode = bid; + bNodes[bid].first_edge = -1; + return Node((bid << 1) + 1); } UEdge addEdge(const Node& source, const Node& target) { @@ -1752,31 +1745,31 @@ void erase(const Node& node) { if (aNode(node)) { - int aNodeId = node.id >> 1; - if (aNodes[aNodeId].prev != -1) { - aNodes[aNodes[aNodeId].prev >> 1].next = aNodes[aNodeId].next; + int aid = node.id >> 1; + if (aNodes[aid].prev != -1) { + aNodes[aNodes[aid].prev >> 1].next = aNodes[aid].next; } else { first_anode = - aNodes[aNodeId].next != -1 ? aNodes[aNodeId].next >> 1 : -1; + aNodes[aid].next != -1 ? aNodes[aid].next >> 1 : -1; } - if (aNodes[aNodeId].next != -1) { - aNodes[aNodes[aNodeId].next >> 1].prev = aNodes[aNodeId].prev; + if (aNodes[aid].next != -1) { + aNodes[aNodes[aid].next >> 1].prev = aNodes[aid].prev; } - aNodes[aNodeId].next = first_free_anode; - first_free_anode = aNodeId; + aNodes[aid].next = first_free_anode; + first_free_anode = aid; } else { - int bNodeId = node.id >> 1; - if (bNodes[bNodeId].prev != -1) { - bNodes[bNodes[bNodeId].prev >> 1].next = bNodes[bNodeId].next; + int bid = node.id >> 1; + if (bNodes[bid].prev != -1) { + bNodes[bNodes[bid].prev >> 1].next = bNodes[bid].next; } else { first_bnode = - bNodes[bNodeId].next != -1 ? bNodes[bNodeId].next >> 1 : -1; + bNodes[bid].next != -1 ? bNodes[bid].next >> 1 : -1; } - if (bNodes[bNodeId].next != -1) { - bNodes[bNodes[bNodeId].next >> 1].prev = bNodes[bNodeId].prev; + if (bNodes[bid].next != -1) { + bNodes[bNodes[bid].next >> 1].prev = bNodes[bid].prev; } - bNodes[bNodeId].next = first_free_bnode; - first_free_bnode = bNodeId; + bNodes[bid].next = first_free_bnode; + first_free_bnode = bid; } } @@ -2051,16 +2044,15 @@ snapshot.eraseNode(node); } virtual void erase(const std::vector& nodes) { - for (int i = 0; i < (int)nodes.size(); ++i) { + for (int i = 0; i < int(nodes.size()); ++i) { snapshot.eraseNode(nodes[i]); } } virtual void build() { - NodeNotifier* _notifier = notifier(); Node node; std::vector nodes; - for (_notifier->first(node); node != INVALID; - _notifier->next(node)) { + for (notifier()->first(node); node != INVALID; + notifier()->next(node)) { nodes.push_back(node); } for (int i = nodes.size() - 1; i >= 0; --i) { @@ -2068,10 +2060,9 @@ } } virtual void clear() { - NodeNotifier* _notifier = notifier(); Node node; - for (_notifier->first(node); node != INVALID; - _notifier->next(node)) { + for (notifier()->first(node); node != INVALID; + notifier()->next(node)) { snapshot.eraseNode(node); } } @@ -2103,16 +2094,15 @@ snapshot.eraseUEdge(edge); } virtual void erase(const std::vector& edges) { - for (int i = 0; i < (int)edges.size(); ++i) { + for (int i = 0; i < int(edges.size()); ++i) { snapshot.eraseUEdge(edges[i]); } } virtual void build() { - UEdgeNotifier* _notifier = notifier(); UEdge edge; std::vector edges; - for (_notifier->first(edge); edge != INVALID; - _notifier->next(edge)) { + for (notifier()->first(edge); edge != INVALID; + notifier()->next(edge)) { edges.push_back(edge); } for (int i = edges.size() - 1; i >= 0; --i) { @@ -2120,10 +2110,9 @@ } } virtual void clear() { - UEdgeNotifier* _notifier = notifier(); UEdge edge; - for (_notifier->first(edge); edge != INVALID; - _notifier->next(edge)) { + for (notifier()->first(edge); edge != INVALID; + notifier()->next(edge)) { snapshot.eraseUEdge(edge); } }