Hi

I m able to calculate whether the cycle exist in the graph or not. With the help of following code..

//Finding out cycles
struct cycle_detector : public dfs_visitor<>
  {
       
    cycle_detector( bool& has_cycle, int& num):_has_cycle(has_cycle),cycle(num)
    { }
    template <class Edge, class Graph>
    void back_edge(Edge, Graph&)
    {
      cycle++;      
     _has_cycle = true;
    }
   protected:
    bool& _has_cycle;
    int& cycle;
  };

int main ()
{
.....
...
...
//Finding out whether the graph has cycles..
bool has_cycle = false;
int count_cycle=0;
typedef Traits::vertices_size_type size_type;
cycle_detector vis(has_cycle,count_cycle);
boost::depth_first_search(g, visitor(vis));
if(has_cycle)
{
file_op << "\nThe graph is cyclic"<< std::endl;
file_op<<"\nNumber of cycles in the graph is "<<count_cycle;
}
else
std::cout << "The graph is acyclic"<< std::endl;

return 0;

}

Now what i want is to calculate the vertex between which the cycle exist .. How to calculate that..


Thanks
Abhishek Vyas
Tata Consultancy Services
Mailto: abhishek.v@tcs.com
Website: http://www.tcs.com
____________________________________________
Experience certainty.        IT Services
                       Business Solutions
                       Outsourcing
____________________________________________
=====-----=====-----=====
Notice: The information contained in this e-mail
message and/or attachments to it may contain 
confidential or privileged information. If you are 
not the intended recipient, any dissemination, use, 
review, distribution, printing or copying of the 
information contained in this e-mail message 
and/or attachments to it are strictly prohibited. If 
you have received this communication in error, 
please notify us by reply e-mail or telephone and 
immediately and permanently delete the message 
and any attachments. Thank you