Более-менее разобравшись с теоретической частью достаточно интересной структуры данных splay-дерево, я понял, что пришло время всю эту муть реализовать. И вроде бы по началу все было не плохо, но сие чудо в упор не хочет выполнять сплэй элемента при его удалении. В крайнем отчаянии я начал копипастить куски кода с википедии, дошло до того, что моего кода практично то и не осталось. Возможно мой код и не самый изящный, но все же прошу помощи в поисках бага.
П.С. Интересно было бы услышать от знающих людей, какие могут быть применения этой структуры помимо вырезать/вставить отрезок.
UPD. Почему при поднятии вершины в корень(то есть при сплее) нам нужно прописывать целых шесть случаев вместо того чтобы просто делать одиночный повороты?
(\/)(*--*)(\/)