Изменения

Перейти к: навигация, поиск

Skip quadtree: определение, время работы

234 байта добавлено, 20:12, 16 октября 2014
Операции над skip quadtree
== Операции над skip quadtree ==
Заметим, что если какой-то квадрат [[Квадродеревья и перечисление точек в произвольном прямоугольнике (статика)#interesting | интересный]] в Для реализации операций нам нужно уметь получать по вершине с уровня <tex>Q_ii</tex>, то он интересный и в соответствующую ей вершину с уровня <tex>Q_{i-1}</tex>.Сделать это можно двумя способами:* Хранить в вершине ссылку на вершину уровнем ниже.Будем * Так как каждая вершина однозначно задается своими координатами, можем сопоставить ей маску. Используем ассоциативный массив, чтобы по маске получать ссылку на вершину. Такие массивы будем хранить для каждого интересного квадрата на каждом уровне хранить указатели на тот же квадрат уровнем ниже и уровнем выше (если есть)уровня skip quadtree.
Локализация выполняется аналогично сжатому квадродереву. Под локализацией подразумевается, что мы хотим найти минимальный интересный квадрат, содержащий данную точку (содержит геометрически, в самом дереве её может не быть, тут, возможно, правильнее сказать «пересекает»). Сначала локализуемся в квадродереве наибольшего уровня, начиная с его корня. Затем локализуемся в квадродереве уровня ниже, начиная уже не с корня, а с того квадрата, который нашли на прошлом уровне. И так далее, пока не дойдём до дна.
Анонимный участник

Навигация