Я должен реализовать структуру дерева сплайнов, используя Java.Имеется класс с именем Node, который имеет:
- левый, правый дочерний элемент
- info (int)
- высота узла
Моя домашняя работа состоит в том, чтобы создать метод "вставки".
Я попробовал некоторые стратегии, но пока это не работает, я пытаюсь получить некоторую помощь не путем получения кода, а с некоторыми идеями, которые могут помочьme.
Итак, моя стратегия сначала состояла в том, чтобы реализовать рекурсивный метод, вставляя информацию точно так же, как двоичное дерево поиска, а затем отображая (используя псевдокод):
Node splay(Node a, int x):
if a.height >=3:{
if (there is a node from "a" with the structure of zigzig or zigzag with x info){
return a(do the rotation)}
}
else:{
return Node(splay(a.left,x),a.info,splay(a.right,x))}
Я не полностьюуверен, что эта идея работает для зигзага и зигзага.
С другой стороны, у меня нет информации о родителе узла, поэтому у меня возникли проблемы с тем, как сделать зигзагообразные повороты, я попыталсяиспользуя a.height == 1, но это будет иметь проблемы