Home | Documentation | Download | Platforms | Projects | Mailing Lists | Version History

- Main Page
- Classes
- Files
- Related Pages

# topsort.h

    00001 //==========================================================================
    00002 //
    00003 //   topsort.h
    00004 //
    00005 //==========================================================================
    00006 // $Id: topsort.h,v 1.8 2000/09/11 07:36:43 raitner Exp $
    00007
    00008 #ifndef GTL_TOPSORT
    00009 #define GTL_TOPSORT
    00010
    00011 #include <GTL/GTL.h>
    00012 #include <GTL/dfs.h>
    00013
    00014 __GTL_BEGIN_NAMESPACE
    00015
    00034 class GTL_EXTERN topsort : public dfs
    00035 {
    00036 public:
    00042     topsort () : dfs () {whole_graph = true; acyclic = true;}
    00043
    00050     int top_num (const node& n) const
    00051         { return top_numbers[n]; }
    00052
    00058     bool is_acyclic () const
    00059         { return acyclic; }
    00060
    00064     typedef list<node>::const_iterator topsort_iterator;
    00065
    00071     topsort_iterator top_order_begin() const
    00072         { return top_order.begin(); }
    00073
    00079     topsort_iterator top_order_end() const
    00080         { return top_order.end(); }
    00081
    00094     virtual int check (graph& G);
    00095
    00100     virtual void reset ();
    00101
    00105     virtual void init_handler (graph& G);
    00106
    00110     virtual void leave_handler (graph&, node&, node&);
    00111
    00115     virtual void old_adj_node_handler (graph&, edge&, node&);
    00116
    00117 protected:
    00121     int act_top_num;
    00125     node_map<int> top_numbers;
    00129     list<node> top_order;
    00133     bool acyclic;
    00134 };
    00135
    00136 __GTL_END_NAMESPACE
    00137
    00138 #endif // GTL_TOPSORT
    00139
    00140 //--------------------------------------------------------------------------
    00141 //   end of file
    00142 //--------------------------------------------------------------------------

University of Passau - FMI - Theoretical Computer Science

Design © 2002, 2003 Marcus Raitner, University of Passau