c++ - tree.hh - C++ 叶遍历

标签 c++ tree

以下代码的输出不正确。它应该只输出树中的叶子:

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/

相关文章:

c++ - 将文件信息(字符数组)嵌入到编译的二进制文件中

c++ - constexpr 数组未定义

c++ - 为什么构造函数需要范围解析来在主体之外定义它?

c++ - 选择高效的数据结构来寻找韵律

java - 寻找最优解中的 Trie 数据结构

c++ - 在 visual studio 中的每个函数中添加一行代码

c++ - DirectX 中的 Alpha 蒙版

haskell - 免费的单子(monad)也适用吗?

tree - 通过 Mathematica 的交互式树进行代码操作

java - 为什么在我的 BST 中序遍历中显示的是指针而不是字符串?