48 #ifndef OGDF_SIMPLE_GRAPH_ALG_H
49 #define OGDF_SIMPLE_GRAPH_ALG_H
76 template<
class NODELIST>
147 template <
class EDGELIST>
150 parallelEdges.clear();
157 edge ePrev = *it++, e;
161 if (ePrev->
source() == e->source() && ePrev->
target() == e->target()) {
163 if (bAppend) { parallelEdges.pushBack(ePrev); bAppend =
false; }
165 ePrev = e; bAppend =
true;
198 SListPure<edge> &edges,
199 EdgeArray<int> &minIndex,
200 EdgeArray<int> &maxIndex);
237 template <
class EDGELIST>
240 parallelEdges.clear();
248 edge ePrev = *it++, e;
252 if (minIndex[ePrev] == minIndex[e] && maxIndex[ePrev] == maxIndex[e]) {
254 if (bAppend) { parallelEdges.pushBack(ePrev); bAppend =
false; }
256 ePrev = e; bAppend =
true;
291 template <
class EDGELIST>
294 EDGELIST ¶llelEdges,
298 parallelEdges.clear();
299 cardPositive.
fill(0);
300 cardNegative.
fill(0);
308 edge ePrev = *it++, e;
314 if (minIndex[ePrev] == minIndex[e] && maxIndex[ePrev] == maxIndex[e])
316 if (ePrev->
source() == e->source() && ePrev->
target() == e->target())
317 cardPositive[ePrev]++;
318 else if (ePrev->
source() == e->target() && ePrev->
target() == e->source())
319 cardNegative[ePrev]++;
323 parallelEdges.pushBack(ePrev);
329 ePrev = e; bAppend =
true;
345 template <
class EDGELIST>
355 edge ePrev = *it++, e;
359 if (minIndex[ePrev] == minIndex[e] && maxIndex[ePrev] == maxIndex[e])
360 parallelEdges[ePrev].pushBack(e);
469 List<node> &isolated,
470 NodeArray<int> &component);