Bonjour,
#include "AlgoPC.h" #include <boost/graph/depth_first_search.hpp> //=============================Depth First Search=========================== class DFSVisitor: public default_dfs_visitor { protected: slBayesianNetwork *pBN; int nodeA, nodeC; bool exist; int counter; public: DFSVisitor(slBayesianNetwork *pBN, int nodeA, int nodeC); ~DFSVisitor(); void discover_vertex(slNode u, const slGraph &g); void resetCounter(); bool isPathExist(); int getCounter(); }; //-------------------------------------------------------------------------- DFSVisitor::DFSVisitor(slBayesianNetwork *pBN, int nodeA, int nodeC) { this->pBN = pBN; this->nodeA = nodeA; this->nodeC = nodeC; this->exist = false; this->resetCounter(); } //-------------------------------------------------------------------------- DFSVisitor::~DFSVisitor() { } //-------------------------------------------------------------------------- void DFSVisitor::resetCounter() { this->counter = 0; } //-------------------------------------------------------------------------- //-------------------------------------------------------------------------- void DFSVisitor::discover_vertex(slNode u, const slGraph &g) { this->counter++; unsigned int varIdx = this->pBN->getVariableIndex(u); if ((varIdx == this->nodeC ) && ((this->counter) > 2)) { this->exist = true; cout<<"\n "<<counter<<" node = "<< varIdx+1; } } //-------------------------------------------------------------------------- int DFSVisitor::getCounter() { return this->counter; } //-------------------------------------------------------------------------- bool DFSVisitor::isPathExist() { return this->exist; }
====================== main program =======================
cout<< "\n a = "<<a<<" c = "<<c;
DFSVisitor vis(this->pBN, a , c);
depth_first_search((slGraph&)this->pBN->get_graph(),visitor(vis).root_vertex(vertex(a, this->pBN->get_graph())));
cout<<"\n counter is = "<<vis.getCounter()<<" Path exist = "<< vis.isPathExist();
======================== out put =========================
counter is = 0 path exist = 0 (false)
-------------------------------------------------------
I will be thankful to you for guiding me.
Best Regards