@borgch

Как построить сбалансированное бинарное дерева поиска, в котором данные хранятся в листах?

Пытаюсь построить range tree для некоторого набора n-мерных точек в целях обучения. Для начала - одномерный случай. По книге де Берга, для простоты алгоритма предлагается создать сбалансированное бинарное дерево поиска, причём данные хранятся в листах этого дерева. Не могу придумать, как такое дерево создавать. Картинка. 539b1ad28be94202bf6ea191932d041e.png
  • Вопрос задан
  • 752 просмотра
Решения вопроса 1
Nipheris
@Nipheris Куратор тега C++
Если хотите хранить данные только в листах, храните в нелистовых вершинах интервал. Например, в дереве на рисунке вместо нелистовой вершины 37 храните интервал [30, 49]. Подобная идея используется в https://en.wikipedia.org/wiki/R-tree - почитайте про него тоже, если вам нужно для точек. Это как раз дерево для пространственной индексации.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы