77
правок
Изменения
→Построение дерева
<br>
Псевдокод:
build_subarray_tree(element[] array)
{
//построение одномерного дерева отрезков на массиве array с сохранением подмассива в каждой вершине
}
build_normal_tree(element[] array)
{
//построение обычного одномерного дерева отрезков на массиве array с сохранением подмассива в каждой вершине
}
get_inside_array(vertex)
}
build_compressed_tree(element[] array, int coordinate = 01) //собственно, построение рекурсивная процедура построения сжатого дерева отрезков
{
if (coordinate < p)
{
sort(array, coordinate); //сортировка массива по нужной координате
segment_tree = build_normal_treebuild_subarray_tree(array);
for (each vertex in segment_tree)
{
build_compressed_tree(inside_array(each), coordinate + 1);
}
}
if (coordinate == p)
{
sort(array, coordinate);
build_normal_tree(array);
}
}