Изменения

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

Сверхбыстрый цифровой бор

426 байт добавлено, 04:14, 9 июня 2013
Нет описания правки
// prefixes {{---}} HashMap всех префиксов бора
insert(x)
'''if ''' prefixes.contains(x): // ''x'' содержится в боре '''return root = insertNode(root, w, x)''' Node ''left'' = prec(x), ''right'' = succ(x), ''nodex'' = new Node(x) insert ''xnodex'' между ''left'' и ''right'' в двусвязном списке листьев root = insertNode(root, w, ''nodex)
prefixes.addAll(allPrefixes(x))
insertNode(vertex, depth, valuex) '''if ''' ''vertex '' == <tex> \varnothing </tex>: ''vertex '' = new Node(left = <tex>\varnothing</tex>, right = <tex>\varnothing</tex>, terminal = depth == 0) '''if ''' ''depth '' == 0: '''return ''' ''vertex'' '''if hiBit''' depthBit(x) == 0:// depth-й бит, т. е. соответствующий текущей глубине vertex.left = insertNode(vertex.left, depth - 1, x[1:]) '''else''': vertex.right = insertNode(vertex.right, depth - 1, x[1:]) '''if''' vertex.left == <tex> \varnothing </tex>: vertex.mark = ''HASNOLEFTSON'' vertex.left = ''x'' '''else if''' vertex.right == <tex> \varnothing </ ещё вставка min & maxtex>: vertex.mark = ''HASNORIGHTSON'' vertex.left = ''x'' '''else''': vertex.mark = ''HASALLSONS''
</code>

Навигация