Search 将重复密钥插入2-3-4树

Search 将重复密钥插入2-3-4树,search,tree,key,b-tree,Search,Tree,Key,B Tree,当只在2-3-4树中插入几个重复的键时,很容易找到顺序的后续键,将其插入,并保持树平稳运行。但是,一旦添加了许多相同的键,就不能再以相同的方式搜索树,因为左、右子项中都有重复的键(最终无法找到其中一些键)。如果不使用辅助列表存储重复项,如何避免这种情况?是否需要调整搜索功能或插入功能 根据定义,键控数据结构中的键是唯一的;非唯一的东西不是(记录)键,尽管它们可能是复合键的一部分 处理这种情况最常见也是最简单的方法是扩展密钥,或者使用记录数据中包含的适当内容,或者在树中插入新的“密钥”时添加一些任

当只在2-3-4树中插入几个重复的键时,很容易找到顺序的后续键,将其插入,并保持树平稳运行。但是,一旦添加了许多相同的键,就不能再以相同的方式搜索树,因为左、右子项中都有重复的键(最终无法找到其中一些键)。如果不使用辅助列表存储重复项,如何避免这种情况?是否需要调整搜索功能或插入功能

根据定义,键控数据结构中的键是唯一的;非唯一的东西不是(记录)键,尽管它们可能是复合键的一部分

处理这种情况最常见也是最简单的方法是扩展密钥,或者使用记录数据中包含的适当内容,或者在树中插入新的“密钥”时添加一些任意的消歧信息(时间戳、计数器等)

如果你在你的2-3-4树中加入了重复项,那么你就破坏了它的不变量,它不再是一个2-3-4树(只是一堆非常相似的数据)


通过仔细编码,当然可以实现2-3-4树(或其他B树),这些树不依赖于唯一可识别的记录;然而,很难看出重点是什么。这就是为什么我见过的每个数据库系统都实现了上述解决方案,也就是说,在“键”中添加一些东西以使其唯一。

根据定义,键数据结构中的键是唯一的;非唯一的东西不是(记录)键,尽管它们可能是复合键的一部分

处理这种情况最常见也是最简单的方法是扩展密钥,或者使用记录数据中包含的适当内容,或者在树中插入新的“密钥”时添加一些任意的消歧信息(时间戳、计数器等)

如果你在你的2-3-4树中加入了重复项,那么你就破坏了它的不变量,它不再是一个2-3-4树(只是一堆非常相似的数据)

通过仔细编码,当然可以实现2-3-4树(或其他B树),这些树不依赖于唯一可识别的记录;然而,很难看出重点是什么。这就是为什么我见过的每个数据库系统都实现了上述解决方案,也就是说,在“键”中添加一些东西以使其唯一