Как мне индексировать строки переменной длины, целые числа, двоичные файлы в b-дереве?
Я создаю механизм хранения базы данных (для удовольствия).
Я знаю, что он использует b-деревья (и прочее), но во всех базовых примерах b-дерева он показывает, что нам нужно отсортировать ключи и затем сохранить их для индексации, а не для целых чисел.
Я могу понять сортировку, но как это сделать для строк, если у меня есть строка в качестве ключа для индексации?
Пример: я хочу проиндексировать все адреса электронной почты в btree, как бы я это сделал??
1 ответ
Неважно, какой тип данных вы сортируете. Для B-Tree вам нужен только компаратор. Первое значение, которое вы вводите в свою базу данных - это root. Второе значение сравнивается с корнем. Если меньше, то продолжайте движение вниз налево, а затем направо. Вставка новых значений часто требует реструктуризации вашего дерева.
Компаратор для строки может использовать длину строки или сравнивать ее в алфавитном порядке или подсчитывать точки в электронном письме за знаком "at".