Open
Graph Drawing
Framework

 v.2012.05
 

GreedyCycleRemoval.h
Go to the documentation of this file.
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