Веревка (структура данных) C ++, функция записи раскола - PullRequest
0 голосов
/ 11 апреля 2020

https://iq.opengenus.org/rope-data-structure/ написание c ++ для split(i):

Разделение (I) Чтобы разбить строку в любой заданной точке i, есть два основных случая, которые мы могли бы встреча:

  • Точка разделения - последний символ узла листа.

  • Точка разделения - средний символ узла листа.

Во втором случае мы можем уменьшить его до гораздо более простого первого, разбив строку в данной точке на 2 конечных узла и создав нового родителя для этих строк компонента. Затем выполните вычитание весов отрезанных частей из родительских узлов и перебалансировку дерева.

...