00001 /* 00002 * $Revision: 2299 $ 00003 * 00004 * last checkin: 00005 * $Author: gutwenger $ 00006 * $Date: 2012-05-07 15:57:08 +0200 (Mon, 07 May 2012) $ 00007 ***************************************************************/ 00008 00043 #ifdef _MSC_VER 00044 #pragma once 00045 #endif 00046 00047 #ifndef OGDF_GREEDY_CYCLE_REMOVAL_H 00048 #define OGDF_GREEDY_CYCLE_REMOVAL_H 00049 00050 00051 00052 #include <ogdf/module/AcyclicSubgraphModule.h> 00053 #include <ogdf/basic/NodeArray.h> 00054 00055 00056 namespace ogdf { 00057 00058 00060 00064 class OGDF_EXPORT GreedyCycleRemoval : public AcyclicSubgraphModule { 00065 public: 00067 void call (const Graph &G, List<edge> &arcSet); 00068 00069 private: 00070 void dfs (node v, const Graph &G); 00071 00072 int m_min, m_max, m_counter; 00073 00074 NodeArray<int> m_in, m_out, m_index; 00075 Array<ListPure<node> > m_B; 00076 NodeArray<ListIterator<node> > m_item; 00077 NodeArray<bool> m_visited; 00078 }; 00079 00080 00081 } // end namespace ogdf 00082 00083 00084 #endif