红黑树可以包含具有相同键的节点吗?

Can red-black tree contain nodes with the same key?

我正在尝试实现一个简单的红黑树。树的节点包含 key:int 和 value:string 的字段。我还没有看到在树中存储相同密钥的示例。 但是C++中有multimap class 或Java 中的TreeMap 是利用红黑树的,它可以存储两个或多个相同的键。 那么,红黑树只存储唯一键吗?关于这个或通用定义有什么严格的规定吗? P.S.:恕我直言,因为红黑树是二叉搜索树,所以它不能存储重复键,因为二叉搜索树根据定义只存储唯一值。

BST definition

key in each node must be greater than or equal to any key stored in the left subtree, and less than or equal to any key stored in the right subtree

因此,BST 允许重复键。

如果你看一下例如 insert operation,有一行决定是向左插入(键小于)还是向右插入(键大于或等于)。这样,插入重复键就没有问题了。

当一个人遍历树中的一个键时,它可以很容易地找到给定键的所有值。