Я ищу эффективный способ для представления и получения географических отношений, например. districts-> states-> США. Это должно соответствовать любому уровню иерархии, например. район-> регион-> штаты-> большой регион (восток / запад / юг / север) -> США.
Мои требования
- Я в основном работаю на самом низком уровне - поэтому быстрое получение их всех должно быть первым приоритетом. Постоянное время является предпочтительным.
- Затем я хочу выполнить агрегацию, например, данные по районным бинарным округам на уровне штатов (чтобы получить все дочерние элементы для узла) - это второй критерий.
- Порядок на уровне не имеет значения, например. Что касается NC, я не против, если я впервые получу Роли или Фейетвилл.
Как вы уже догадались, структура данных Tree логически поддается решению проблемы. Но я не мог найти способ получить все листья эффективно. Я могу проверить, является ли узел листом O (log n), но я должен проверить каждый из узлов для этого.
Я смотрел деревья B, B +, но чего я не понял, так это того, что они поддерживают свой порядок, используя какой-то порядок, например, по возрастанию или по убыванию.
У меня такое чувство, что для этого должны быть эффективные решения, потому что - Windows или любая файловая система делает это. Файлы-> Папки-> Большие папки-> C -> Мой компьютер. Кроме того, такого рода вычисления должны быть выполнены в интеллектуальном анализе данных, скажем, для кластеризации (я помню, что читал что-то подобное)
Будут благодарны любые выводы в этом направлении.
Спасибо