【发布时间】:2018-01-06 00:40:42
【问题描述】:
在这个map 示例中:
std::map<int, int> m;
for (int i = 0; i < 1000; i++)
m[2*i] = i;
for (i = 0; i < 1000; i++) // just an example of filling a map
m[2*i + 1] = i;
如何知道内部“红黑树”的样子?
哪些节点将成为其他节点的子节点?
在这样一个简单的示例中(直观地)理解这一点,可以让我更好地掌握红黑树图实现的工作原理。
我阅读了许多答案,例如 Why is std::map implemented as a red-black tree? 关于将 std::map 实现为红黑树,但它没有帮助。我还阅读了Red–black tree,但同样,一个简单的地图示例将有助于理解它的工作原理。
【问题讨论】:
-
您的问题是什么?您想知道标准是如何指定
std::map的吗?你想知道红黑树是如何工作的吗?请注意,这两个问题都不适合 SO。 -
@PasserBy 我想通过一些 C++ 代码知道,在此处给出的示例中,哪个节点将是其他节点的子节点(更准确地说,在 std::map 结构的底层树中)。
标签: c++ dictionary tree red-black-tree