288
 правок
Изменения
→Реализация персистентных массивом в виде сбалансированных деревьев
Решающим моментом является то, что мы допускаем множественные ссылки на одно и то же поддерево: хотя концептуальное представление постоянных массивов - ориентированные деревья, их представление в памяти различно. Мы допускаем, что узел может быть преемником многих разных узлов. 
|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.
