Курсовая работа: Структура данных программного комплекса Q-дерево
- there – индикатор наличия точки в дереве (тип boolean);
- N – число точек в листе (тип integer);
- i – счетчик цикла (тип integer).
· Словесный алгоритм
В начале своей работы функция проверяет, не является ли пустым параметр-указатель; если да – выход из подпрограммы. Если он не является листом, осуществляется цикл переходов к листу с нужными границами. Далее проверяется наличие точки в листе, и, если она там не обнаружена, процедура заканчивает свою работу; иначе происходит удаление точки из листа и последующая проверка общего числа точек в соседних листах. Если появилась возможность, соседние листы объединяются в один, старые удаляются.
2.1.4.3 Процедура ClearTree
· Процедура предназначена для удаления всех элементов Q-дерева
· Параметры
- выходной параметр – указатель на узел дерева (тип PNode);
· Предусловия
Указатель на дерево не должен быть пустым
· Словесный алгоритм
В начале своей работы функция проверяет, не является ли пустым параметр-указатель; если да – выход из подпрограммы. Если он не является листом, осуществляются рекурсивные вызовы подпрограммы для каждого из его дочерних узлов; если параметр-указатель является листом, подпрограмма освобождает занятую им память и завершает свою работу.
2.1.4. 4 Функция Find
· Функция предназначена для поиска элементов Q-дерева, расположенных в заданной области карты
· Параметры
- входной параметр – указатель на узел дерева (тип PNode);
- параметр-константа – границы этого узла (тип TRect);
- параметр-константа – границы заданной области карты (тип TRect);
· Функция возвращает список (тип TList) элементов дерева, расположенных в заданной области
· Предусловия
Указатель на дерево не должен быть пустым
· Локальные переменные
- NewBounds – границы нового узла, передаваемые в качестве параметра в рекурсивном вызове функции (тип TRect);
- i – счетчик цикла (тип integer).
· Словесный алгоритм
В начале своей работы функция проверяет, не является ли пустым параметр-указатель; если да – выход из подпрограммы. Если часть площади узла находится в заданной области, осуществляются рекурсивные вызовы подпрограммы для каждого из его дочерних узлов. Для достигнутых таким образом листьев происходит проверка точек на принадлежность заданной области.
2.1.4. 5 Процедура SetProperties
· Процедура предназначена для выделения памяти и установки начальных характеристик для нового узла
· Параметры
- выходной параметр – указатель на узел дерева (тип PNode);
· Словесный алгоритм