Блог пользователя T0RRES

Автор T0RRES, 10 лет назад, По-русски

Более-менее разобравшись с теоретической частью достаточно интересной структуры данных splay-дерево, я понял, что пришло время всю эту муть реализовать. И вроде бы по началу все было не плохо, но сие чудо в упор не хочет выполнять сплэй элемента при его удалении. В крайнем отчаянии я начал копипастить куски кода с википедии, дошло до того, что моего кода практично то и не осталось. Возможно мой код и не самый изящный, но все же прошу помощи в поисках бага.

П.С. Интересно было бы услышать от знающих людей, какие могут быть применения этой структуры помимо вырезать/вставить отрезок.

UPD. Почему при поднятии вершины в корень(то есть при сплее) нам нужно прописывать целых шесть случаев вместо того чтобы просто делать одиночный повороты?

(\/)(*--*)(\/)

  • Проголосовать: нравится
  • +12
  • Проголосовать: не нравится

»
10 лет назад, # |
Rev. 2   Проголосовать: нравится +11 Проголосовать: не нравится

Немного не по теме, но для поддержания корректного потенциала нужно делать splay и в случаях доступа к элементу: поиск (если просто find, а не часть какой-либо другой операции), доступ по индексу. Иначе можно нарваться на квадрат по сложности.

»
10 лет назад, # |
  Проголосовать: нравится +4 Проголосовать: не нравится

куку