Изменения
→Применение описанного дерева
==Применение описанного дерева==
Таким образом, описана структура, от которой можно отрезать слева часть произвольной длины и слить две любые части в одну в нужном порядке. Теперь мы имеем возможность:
* вставить элемент в любое место (отрежем нужное количество элементов слева, сольем левое дерево с деревом из одного добавленного элемента и результат {{---}} с правым деревом);,* переставить любой кусок массива куда угодно (сделаем нужные разрезы и слияния в правильном порядке);,* совершать групповые операции с элементами. Вспомним реализацию таких операций в дереве отрезков и поймем, что ничего не помешает нам сделать то же самое с описанным деревом. В групповые операции включается, естественно, и взятие функции от отрезка.,* сделав на одном исходном массиве два дерева из элементов разной четности, можно решить задачу про смену мест четных и нечетных на отрезке.,* с помощью декартова дерева по неявному ключу можно эффективно реализовать такую структуру данных как [[Rope|Rope]].
== См. также ==