Changeset 149:2f7ae34e1333 in lemon for lemon/list_graph.h
- Timestamp:
- 04/24/08 14:53:09 (16 years ago)
- Branch:
- default
- Phase:
- public
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
lemon/list_graph.h
r73 r149 153 153 static Arc arcFromId(int id) { return Arc(id);} 154 154 155 bool valid(Node n) const { 156 return n.id >= 0 && n.id < static_cast<int>(nodes.size()) && 157 nodes[n.id].prev != -2; 158 } 159 160 bool valid(Arc a) const { 161 return a.id >= 0 && a.id < static_cast<int>(arcs.size()) && 162 arcs[a.id].prev_in != -2; 163 } 164 155 165 Node addNode() { 156 166 int n; … … 220 230 nodes[n].next = first_free_node; 221 231 first_free_node = n; 232 nodes[n].prev = -2; 222 233 223 234 } … … 248 259 249 260 arcs[n].next_in = first_free_arc; 250 first_free_arc = n; 251 261 first_free_arc = n; 262 arcs[n].prev_in = -2; 252 263 } 253 264 … … 350 361 return Parent::addArc(s, t); 351 362 } 363 364 /// Node validity check 365 366 /// This function gives back true if the given node is valid, 367 /// ie. it is a real node of the graph. 368 /// 369 /// \warning A Node pointing to a removed item 370 /// could become valid again later if new nodes are 371 /// added to the graph. 372 bool valid(Node n) const { return Parent::valid(n); } 373 374 /// Arc validity check 375 376 /// This function gives back true if the given arc is valid, 377 /// ie. it is a real arc of the graph. 378 /// 379 /// \warning An Arc pointing to a removed item 380 /// could become valid again later if new nodes are 381 /// added to the graph. 382 bool valid(Arc a) const { return Parent::valid(a); } 352 383 353 384 /// Change the target of \c e to \c n … … 946 977 static Edge edgeFromId(int id) { return Edge(id);} 947 978 979 bool valid(Node n) const { 980 return n.id >= 0 && n.id < static_cast<int>(nodes.size()) && 981 nodes[n.id].prev != -2; 982 } 983 984 bool valid(Arc a) const { 985 return a.id >= 0 && a.id < static_cast<int>(arcs.size()) && 986 arcs[a.id].prev_out != -2; 987 } 988 989 bool valid(Edge e) const { 990 return e.id >= 0 && 2 * e.id < static_cast<int>(arcs.size()) && 991 arcs[2 * e.id].prev_out != -2; 992 } 993 948 994 Node addNode() { 949 995 int n; … … 1014 1060 nodes[n].next = first_free_node; 1015 1061 first_free_node = n; 1016 1062 nodes[n].prev = -2; 1017 1063 } 1018 1064 … … 1042 1088 arcs[n].next_out = first_free_arc; 1043 1089 first_free_arc = n; 1090 arcs[n].prev_out = -2; 1091 arcs[n | 1].prev_out = -2; 1044 1092 1045 1093 } … … 1158 1206 return Parent::addEdge(s, t); 1159 1207 } 1208 /// Node validity check 1209 1210 /// This function gives back true if the given node is valid, 1211 /// ie. it is a real node of the graph. 1212 /// 1213 /// \warning A Node pointing to a removed item 1214 /// could become valid again later if new nodes are 1215 /// added to the graph. 1216 bool valid(Node n) const { return Parent::valid(n); } 1217 /// Arc validity check 1218 1219 /// This function gives back true if the given arc is valid, 1220 /// ie. it is a real arc of the graph. 1221 /// 1222 /// \warning An Arc pointing to a removed item 1223 /// could become valid again later if new edges are 1224 /// added to the graph. 1225 bool valid(Arc a) const { return Parent::valid(a); } 1226 /// Edge validity check 1227 1228 /// This function gives back true if the given edge is valid, 1229 /// ie. it is a real arc of the graph. 1230 /// 1231 /// \warning A Edge pointing to a removed item 1232 /// could become valid again later if new edges are 1233 /// added to the graph. 1234 bool valid(Edge e) const { return Parent::valid(e); } 1160 1235 /// \brief Change the source of \c e to \c n 1161 1236 ///
Note: See TracChangeset
for help on using the changeset viewer.