/////////////////////////////////////////////////////////// // MT2Q1alt.cpp - more direct use of functor than in MT2Q1 #include "MT2Q1alt.h" #include #include typedef std::string stdStr; class functor : public IFunc*> { void operator()(node* pNode, IFunc*>::OpType ot) { if(ot == IFunc*>::vertexOp) std::cout << "\n vertexOp: " << pNode->value(); else std::cout << "\n edgeOp: " << pNode->value(); } }; void main() { functor f; node n1(1,"one"); n1.Register(&f); node n2(2,"two"); n2.Register(&f); node n3(3,"three"); n3.Register(&f); node n4(4,"four"); n4.Register(&f); node n5(5,"five"); n5.Register(&f); node n6(6,"six"); n6.Register(&f); node n7(7,"seven"); n7.Register(&f); n1.add(&n2); n1.add(&n3); n3.add(&n4); n1.add(&n5); n4.add(&n6); n6.add(&n7); DFS(&n1,f); std::cout << "\n\n"; }