【问题标题】:preorder and post-order traversal in c++ stl set and mapc ++ stl set和map中的前序和后序遍历
【发布时间】:2016-07-02 11:53:59
【问题描述】:

我已经阅读了 C++ STL 中提供的集合和映射是使用树实现的,所以我可以将它们作为树遍历吗?我可以获得集合或地图的预购和后购遍历吗?我知道我可以通过简单地遍历所有元素来进行有序遍历。

set<int> tree;
tree.insert(1);
tree.insert(2);
tree.insert(3);

这棵树的顺序遍历应该是 1,2,3 和前序 2,1,3 和后序 1,3,2。如果我设置了树,我怎样才能得到字母 2?

谢谢!!

【问题讨论】:

  • “一棵树”,是的,但不是任何特定的树。映射和集合以键顺序为您提供对值的有序迭代。树的细节没有暴露或观察到。

标签: algorithm c++11 stl tree preorder


【解决方案1】:

Stl set 和 map 是平衡树(如红黑树)。他们不只是插入元素并将其保持在一个顺序,他们可以平衡他们的元素以保持树 h O(logn)。因此,您的元素不一定在看起来像您想的那样的树中,并且没有可以让您看到它们的功能。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-01
    • 1970-01-01
    • 2013-01-22
    • 1970-01-01
    相关资源
    最近更新 更多