Изменения

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

Персистентный массив

32 байта добавлено, 16:42, 8 октября 2017
Нет описания правки
{{Определение
|def=Мы называем ADT '''полностью персистентными'''(англ. fully persistent), если, помимо интерфейса, все операции сохраняют операнды неизменными, таким образом, что операнды и результаты таких операций могут быть свободно используемы повторно во время дальнейшего хода вычислений.
Мы называем структуру данных (как реализацию абстрактного типа данных англ.ATD) полностью персистентной, если она эффективно реализует все операции предполагаемого, полностью персистентного ADT.}}
===Интерфейс===
Решающим моментом является то, что мы допускаем множественные ссылки на одно и то же поддерево: хотя концептуальное представление постоянных массивов - ориентированные деревья, их представление в памяти различно. Мы допускаем, что узел может быть преемником многих разных узлов.
Def {{Определение|def= Пусть X - некоторое множество. Бинарное дерево с несколькими ссылками по X является кортежем B = (N, L, R) с L∩R = 0 /, L, R ⊆ N × N, такойтаким, что * (N, L∪R) является '''корневым ациклическим ориентированным графом ''' с узлами N и ребра , ребрами L∪R и в . * В каждом из двух подграфов (N, L) и (N, R) каждый узел имеет '''не более одного прямого преемника'''. Кроме того, узлы *Узлы без каких-либо преемников (листья B) должны быть все элементами X.}}
Дано двоичное дерево с несколькими ссылками B = (N,L,R) и узел ''p'' ∈ N. Пишут LEFT(''p'') = ''q'', если ''q'' является единственным приемником ''p'' в(N,L) и, если такого ''q'' не существует, пишем LEFT(''p'')= ⊥, предполагая, что ⊥ не содержит N. Аналогично, пишут RIGHT(p) = ''q'', если q является единственным приемником p в(N,R) и, если такого q не существует, пишем RIGHT(''p'')= ⊥. Мы будем называть LEFT (''p'') левым дочерним элементом p и RIGHT (''p'') правым дочерним элементом.
В B = (N, L∪R) узел ''p'' ∈ N может иметь много прямых предшественников ''q''. Тогда ребра (''q'', ''p'') ∈ E называют ссылками от q до p.
288
правок

Навигация