Изменения

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

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

38 байт добавлено, 23:39, 22 января 2017
Быстрый цифровой бор (x-fast-trie)
<font color="green">// узлы списка и дерева будем хранить одним типом: узлом с ссылками на правый и левый элементы, а содержимым {{---}} целым числом</font>
<font color="green">// только в списке будет храниться само число, а боре 1, если вершина {{---}} лист, и 0 в остальных случаях</font>
'''insertfunction'''insert(x):
'''if''' x '''in''' prefixes <font color="green">// ''x'' содержится в боре</font>
'''return''' <font color="green">// тогда не добавляем его</font>
'''Node''' left = pred(x), right = succ(x), node = Node(x)
insert node между left и right в двусвязном списке листьев</font>
<font color="green">// передаём ссылку на элемент в списке, чтобы сделать на него быструю ссылку в случае отсутствия одного из сыновей</font>
root = insertNode(root, w, node)
prefixes.addAll(allPrefixes(x))
'''insertNodefunction'''insertNode(vertex, depth, node):
'''if''' vertex == <tex> \varnothing </tex>
vertex = Node(left = <tex>\varnothing</tex>, right = <tex>\varnothing</tex>, terminal = depth == 0)
243
правки

Навигация