【发布时间】:2014-02-08 14:11:51
【问题描述】:
我的要求是能够快速检索树中的最小值和最大值。 (注意,不是最小/最大键,而是卫星数据的最小/最大键)。
树将基于字符串作为键,每个节点将存储一个整数。这个整数必然会改变并不断更新。键保持固定
我正在考虑使用here 描述的方法来增加一棵红黑树,以便每个节点都存储与最小值相似的最大值(左侧最大值和右侧最大值的最大值及其自身)。
所以当我更新一个节点时,我会简单地更新每个节点的最小值/最大值,这些节点被遍历到我的当前节点。
避免重写红/黑树的 STL 实现的最佳方法是什么。
【问题讨论】:
-
boost多索引容器? -
@Yakk 感谢您的建议。会完成这项工作,但似乎有点矫枉过正,因为我不需要对二级索引进行排序,我只需要跟踪最小/最大排序就像最小/最大堆
-
"你不能总是得到你想要的。你不能总是得到你想要的。但是如果你尝试几次,你就会得到你需要的。"作为替代方案,您可以编写自己的多索引来增加 boost 添加仅支持最小/最大元素(优先级队列?)的索引,但这需要大量工作,您真的在乎吗?
标签: c++ data-structures stl tree red-black-tree