Изменения

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

Rope

56 байт добавлено, 13:24, 6 июня 2014
Псевдокод
===Псевдокод===
'''Pair'''<Node, Node> split(Node node, '''int''' i): Node t1tree1, t2tree2 t1tree1.w = i t2tree2.w = node.w - i '''Pair''' res
'''if''' node.left <tex>\ne \varnothing</tex>
'''if''' node.left.w >= i
'''Pair''' res = split(node.left, i) t1 tree1 = res.first t2tree2.left = res.second t2tree2.right = node.right
'''else'''
'''Pair''' res = split(node.right, i - node.left.w) t1tree1.left = node.left t1tree1.right = res.first t2 tree2 = res.second
'''else'''
t1tree1.s = node.s.substr(0, i) t2tree2.s = node.s.substr(i, s.len) '''return''' pair'''Pair'''(t1tree1, t2tree2)
===Время работы===

Навигация