Я пытаюсь реализовать прямой итератор для дерева квадрантов. К сожалению, я не могу найти какой-либо ресурс об обходе дерева квадрантов.
Может ли кто-нибудь указать мне в правильном направлении?
Я пытаюсь реализовать прямой итератор для дерева квадрантов. К сожалению, я не могу найти какой-либо ресурс об обходе дерева квадрантов.
Может ли кто-нибудь указать мне в правильном направлении?
Самый простой способ — линеаризовать дерево. Конечно, вам придется делать это рекурсивно, но вы создадите массив указателей на узлы, которые хотите посетить, а затем создадите из него прямой итератор.
Взгляните на следующую статью и посмотрите, есть ли в ней то, что вам нужно...
Простые и эффективные методы обхода деревьев квадрантов и октодеревьев
Это моя реализация в javascript: https://github.com/alexroat/quadtree-traversal
Существует наглядная демонстрация, которая показывает поведение алгоритма.