Изменения

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

Splay-дерево

5 байт убрано, 19:25, 17 мая 2011
Insert
==Split==
Split(<tex>i</tex>, <tex>T</tex>). Запускаем Splay от элемента <tex>i</tex> и возвращаем два дерева, полученные отсечением правого или левого поддерева от корня, в зависимости от того, содержит корень элемент больше или не больше, чем <tex>i</tex>.
==InsertAdd==InsertAdd(<tex>i</tex>, <tex>T</tex>). Запускаем Split(<tex>i</tex>, <tex>T</tex>), который нам возвращает деревья <tex>T_1</tex> и <tex>T_2</tex>, их подвешиваем к <tex>i</tex> как левое и правое поддеревья соответственно. 
==Remove==
Remove(<tex>i</tex>, <tex>T</tex>). Запускаем Move to Front от <tex>i</tex>-го элемента и возвращаем Merge от его детей.
Анонимный участник

Навигация