Иногда не ясно, как реализовать структуры данных, такие как деревья, в Python.
Например,
D
/ \
B F
/ \ / \
A C E G
- простая двоичная древовидная структура. В Python вы представляете это так:
[D,B,F]
- это узел с левым и правым поддеревом. Для представления полного дерева у вас будет:
[D,[[B,A,C],[F,E,G]]]
Это простой список вложенных списков, где любой узел может иметь значение, например D или C, а любой узел может быть поддеревом, которое, рекурсивно, является списком вложенных списков. Вы можете сделать что-то подобное со словарем словарей. Эти типы реализаций являются немного быстрыми и грязными и могут быть неприемлемы в назначении, где инструктор ожидает класс Node с указателями на другие узлы, но в реальном мире обычно лучше использовать оптимизированные реализации списков / словарей Python первый. Только если результат каким-то образом неадекватен, перепишите его так, чтобы вы написали его на C или Java.
Помимо этого, конечно, вам нужно реализовать различные алгоритмы для манипулирования вашими деревьями, потому что дерево quadtree - это больше, чем просто некоторые данные; это набор правил о том, как вставлять и удалять узлы. Если это не вопрос курсовой работы, то Quadtree 0.1.2 , вероятно, будет хорошей идеей.