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++)
19 TreeNode *TreeNode::exploreChild(tree_t id)
22 std::set<tree_t >::iterator it;
24 if (!hasBeenExplored(id)) {
25 n = new TreeNode(this);
30 if ((it = backtrack.find(id)) != backtrack.end())
36 int TreeNode::setBacktrack(tree_t id)
38 if (backtrack.find(id) == backtrack.end())
44 tree_t TreeNode::getNextBacktrack()
46 if (backtrack.empty())
48 return *backtrack.begin();
51 TreeNode *TreeNode::getRoot()
54 return parent->getRoot();