是否可以为B树创建一个实现,使用户能够一次搜索多个项目?例如,如果我有一个由名字组成的B树,并输入字母“to”,它将输出所有以“to”开头的名字,例如:“Tom”,“Tony”,“Tosh” 。
答案 0 :(得分:1)
不确定。对B-Tree进行排序,因此您可以找到其值在字典上大于或等于前缀的第一个元素,然后简单地按顺序迭代,直到找到一个不以前缀开头的元素。
如果要查找以不区分大小写的前缀开头的元素,则需要调整该算法。一种可能性是生成前缀的所有可能的大小写变体(在to
的情况下,只有四个,但更长的前缀将有更多)。另一种可能性是使用整理顺序对B树进行排序,其中相同字符串的不同情况相邻;这将减慢B-Tree操作,但它的优点是允许不区分大小写的查找。