以下代码的输出不正确。它应该只输出树中的叶子:
tree<Node> gameTree;
tree<Node>::iterator root = gameTree.insert(gameTree.begin(),Node(14));
tree<Node>::iterator first = gameTree.append_child(root,Node(32.0));
tree<Node>::iterator second = gameTree.append_child(root,Node(64.0));
gameTree.append_child(second,Node(21.0));
gameTree.append_child(second,Node(24.0));
tree<Node>::iterator begin = gameTree.begin_leaf();
tree<Node>::iterator end = gameTree.end_leaf();
int x = 0;
while (begin != end)
{
cout << begin->value << endl;
begin++;
}
但它输出:
32
64
21
24
当输出应该是:
32
21
24
最佳答案
根据文档,您应该使用 leaf_iterator 而不是迭代器,您看到的输出来自有序遍历,我猜您想进行叶遍历。
顺便说一句,感谢您发布这个我刚开始寻找树容器
第一个
关于c++ - tree.hh - C++ 叶遍历,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7343045/