Как мне индексировать строки переменной длины, целые числа, двоичные файлы в b-дереве?

Я создаю механизм хранения базы данных (для удовольствия).

Я знаю, что он использует b-деревья (и прочее), но во всех базовых примерах b-дерева он показывает, что нам нужно отсортировать ключи и затем сохранить их для индексации, а не для целых чисел.

Я могу понять сортировку, но как это сделать для строк, если у меня есть строка в качестве ключа для индексации?

Пример: я хочу проиндексировать все адреса электронной почты в btree, как бы я это сделал??

1 ответ

Решение

Неважно, какой тип данных вы сортируете. Для B-Tree вам нужен только компаратор. Первое значение, которое вы вводите в свою базу данных - это root. Второе значение сравнивается с корнем. Если меньше, то продолжайте движение вниз налево, а затем направо. Вставка новых значений часто требует реструктуризации вашего дерева.

Компаратор для строки может использовать длину строки или сравнивать ее в алфавитном порядке или подсчитывать точки в электронном письме за знаком "at".

Другие вопросы по тегам