是否可以为b树创建一个实现,使用户能够同时搜索多个项目?例如,如果我有一个由名字组成的b树,我输入字母“to”,它将输出以“to”开头的所有名字,例如:“tom”、“tony”、“tosh”。
最佳答案
当然。一个B-树被排序,所以你可以找到第一个元素,它的值在字典上大于或等于前缀,然后简单地顺序地迭代,直到找到一个没有从前缀开始的元素。
如果要查找以不区分大小写前缀开头的元素,则需要调整该算法。一种可能是生成前缀的所有可能的大小写变体(在to
的情况下,只有四个,但较长的前缀将有更多)。另一种可能是使用排序顺序对B树进行排序,在排序顺序中,同一字符串的不同情况是相邻的;这将减慢B树操作的速度,但它的优点是允许不区分大小写的查找。
关于algorithm - 一次搜索B树中的多个记录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27351213/