我试图实现一个简单的红黑树。树的节点包含key:int和value:string的字段。我没有看到在树中存储相同键的示例。 但是C ++中的multimap类或Java中的TreeMap使用了红黑树,它可以存储两个或多个相同的键。 那么,红黑树只存储唯一的密钥吗?关于这个或通用定义是否有任何严格的规则? P.S.:Imho,因为红黑树是二叉搜索树,所以它不能存储重复的密钥,因为二进制搜索树根据定义只存储唯一的值。
答案 0 :(得分:0)
每个节点中的键必须大于或等于存储在左子树中的任何键,并且小于或等于存储在右子树中的任何键
因此,BST允许重复键。
如果您查看例如insert operation,则会有一行决定是向左(键是少)还是向右(键大于或等于)。因此,插入重复键没有问题。
当一个人遍历树的某个键时,它可以很容易地找到给定键的所有值。