3 int TreeNode::totalNodes = 0;
5 TreeNode::TreeNode(TreeNode *par)
7 TreeNode::totalNodes++;
11 TreeNode::~TreeNode() {
12 std::map<tree_t, class TreeNode *>::iterator it;
14 for (it = children.begin(); it != children.end(); it++)
18 TreeNode *TreeNode::exploreChild(tree_t id)
21 std::set<tree_t >::iterator it;
23 if (!hasBeenExplored(id)) {
24 n = new TreeNode(this);
29 if ((it = backtrack.find(id)) != backtrack.end())
35 int TreeNode::setBacktrack(tree_t id)
37 if (backtrack.find(id) == backtrack.end())
43 tree_t TreeNode::getNextBacktrack()
45 if (backtrack.empty())
47 return *backtrack.begin();
50 TreeNode *TreeNode::getRoot()
53 return parent->getRoot();