Изменения

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

Персистентные структуры данных

1 байт добавлено, 12:38, 19 апреля 2015
м
Метод копирование пути
[[Файл:Копирование пути.png]]
Так как рассматривается сбалансированное дерево поиска, то поднимая вершину вверх при балансировке , нужно делать копии всех вершин участвующих во вращениях у которых изменились ссылки на детей. Таких всегда не более трех, поэтому ассимптотика <tex>O</tex> <tex>( \log n)</tex> не пострадает. Когда балансировка закончится нужно дойти вверх до корня делая копии вершин на пути. Получается копирование пути с некоторой его окрестностью.
Этот метод хорошо работает на [[Стек|стеке]], двоичных ([[Декартово дерево |декартовых]], [[Красно- черное дерево | красно-черных]]) деревьях. Но в случае преобразования [[Очередь| очереди]] в персистентную операция добавления (англ.''push'') будет очень дорогой, так как элемент добавляется в хвост очереди, который достижим из всех остальных элементов. Так же не выгодно применять этот метод и в случае, когда в структуре данных имеются ссылки на родителя.

Навигация