Описание тега tree-rotation
Tree rotation is an operation on a binary tree that changes the structure without interfering with the order of the elements.
1
ответ
Как создать восходящее дерево сплайнов из следующей последовательности
Это последовательность 20,10,5,30,40,57,3,2,4,35,25,18,22,27 Я пробовал сделать каждый новый вставленный узел корневым, но он не работает. Кто-нибудь может дать мне пошаговое объяснение?
26 дек '15 в 14:55
1
ответ
Алгоритмы преобразования порядка полного бинарного дерева поиска в отсортированный порядок и наоборот
Этот вопрос похож на Сортированный список для завершения представления массива BST, но, возможно, более конкретно. Этот вопрос можно использовать для динамического решения проблемы вставки узла в полное дерево двоичного поиска. Рассмотрим полное дво…
17 фев '19 в 18:23
1
ответ
Левая ротация бинарного дерева в ржавчине не может пережить оригинал
Я пытаюсь реализовать самобалансирующееся двоичное дерево поиска и написал функцию для замены дерева с его левым вращением: struct BST<'a> { l: Option<&'a BST<'a>>, r: Option<&'a BST<'a>> } impl<'a> BST<…
02 янв '17 в 17:49
1
ответ
Докажите максимальное количество поворотов для двух деревьев, чтобы стать равными
В книге " Введение в алгоритмы - креативный подход", вопрос 4.24: Пусть T1 и T2 два произвольных дерева, каждое из которых имеет n узлов. Докажите, что достаточно применить не более 2n поворотов к T1, чтобы оно стало равным T2. Для бинарных деревьев…
24 ноя '13 в 07:49
2
ответа
Указатели в AVL Tree Rotation
У меня проблемы с пониманием, почему работает приведенный ниже код поворота дерева. Если T2 указывает на y.left а также y.left указывает на xразве это не делает последнее назначение x.right = T2 равно x.right = x? Не должен ли указатель указывать на…
31 май '17 в 23:23
1
ответ
Вращение в красном черном дереве
Я пытаюсь выяснить вращение в красно-черном дереве, пока его балансировка не завершена. Я понимаю, почему происходит вращение, но я не понимаю, как это делается. Кроме того, какие промежуточные повороты, такие как LL, RR, LR и RL, выполняются для до…
28 окт '13 в 00:00
2
ответа
Дополнительные случаи в деревьях AVL
Деревья AVL, кажется, имеют четыре вида преобразований: левый-левый, левый-правый, правый-левый и правый-правый. Однако, похоже, могут быть и другие обстоятельства. Я представляю это как левостороннее: Ни левые, ни правые повороты не могут сбалансир…
22 дек '15 в 04:33
2
ответа
Всегда ли возможно превратить один BST в другой, используя повороты дерева?
При заданном наборе значений возможно наличие множества различных деревьев двоичного поиска, которые могут быть сформированы из этих значений. Например, для значений 1, 2 и 3 есть пять BST, которые мы можем сделать из этих значений: 1 1 2 3 3 \ \ / …
25 дек '12 в 04:37
2
ответа
Бинарное преобразование дерева с использованием поворотов
Пока я изучал среднесрочные вопросы о двоичных деревьях, я нашел утверждение, что любое произвольное двоичное дерево с n-узлами может быть преобразовано в любое другое двоичное дерево с n-узлами с максимум 2*n-2 поворотами. Есть ли доказательства эт…
28 окт '13 в 00:16
1
ответ
Расстояние вращения между двумя бинарными деревьями
У меня есть следующее двоичное дерево, которое я пытаюсь преобразовать в целевое двоичное дерево (второе дерево в записи), используя минимальное количество поворотов дерева. Теоретическое минимальное количество поворотов для этого дерева - 5, однако…
23 окт '16 в 19:47
1
ответ
AVL дерево проблем с вращением
Я столкнулся с очень странной проблемой с реализацией дерева AVL. Учитывая приведенный ниже код, я могу запустить его только без правильных поворотов, поскольку, если я это сделаю, у меня произойдет сбой. Я уже пробовал отлаживать, удалять файлы и п…
26 сен '16 в 16:25
2
ответа
Может ли дерево бинарного поиска сломаться при вращении?
Сейчас я изучаю алгоритмы, и при реализации вставки красно-черного дерева я пришел к идее, описанной в заголовке вопроса. Это происходит, когда задействованы равные узлы. Давайте начнем с простого дерева примеров, где левые потомки меньше, чем родит…
01 апр '18 в 18:43
1
ответ
Максимум. количество вращений при вставке нового элемента в n-элементное красное черное дерево
Каково максимальное количество вращений при вставке нового элемента в n-элемент красное черное дерево? Если я прав, то вставка, которая не нарушает правила RBT, требует максимум 2 повороты (2 случая). Предполагая, что это все, есть O(1) тоже правиль…
10 фев '14 в 18:37
2
ответа
Всегда ли возможно превратить один BST в другой, используя не более O(n) поворотов дерева?
Этот предыдущий вопрос спрашивает, всегда ли возможно превратить один BST для набора значений в другой BST для того же набора значений, просто используя повороты дерева (ответ - да). Однако всегда ли можно сделать это, используя не более O(n) полны…
18 май '16 в 16:56
0
ответов
Сделать двоичное дерево наклоненным влево
Итак, у меня есть реализация двоичного дерева, которая выглядит так struct node { struct node *left; struct node *right; }; (фактическая реализация немного сложнее, поскольку там хранятся дополнительные данные, поскольку это для упрощения логической…
30 сен '19 в 22:56
0
ответов
Вращение Splay дерева в C
Я реализовал несколько функций для поворота узла в расширенном дереве, но это каким-то образом разрушает мое дерево, отправляя один и тот же узел в разные места. Они поворачивают сына к узлу папы. Указатель папы, вероятно, избыточен, но я хотел попр…
26 мар '21 в 22:16
1
ответ
Вставка и удаление деревьев AVL
Я хотел бы знать, правильно ли я применяю следующие операции вставки и удаления в дереве AVL: 62 / \ 44 78 / \ \ 17 50 88 / \ 48 54 вставка (42) вставка (90) удалить (62) вставка (92) удалить (50) В этом вопросе при удалении удаленный элемент заменя…
30 июн '21 в 16:42
0
ответов
Можно ли превратить один BST в другой с помощью итеративного алгоритма?
Я уже написал алгоритм, который может рекурсивно преобразовать один BST в другой. Решение было кратко объяснено по ссылке ниже. Всегда ли можно превратить один BST в другой, используя поворот дерева? rotate u right v / \ -----> / \ v C A u / \ &l…
26 янв '22 в 14:41
0
ответов
Я столкнулся с проблемой при попытке повернуть дерево AVL в C
У меня возникли проблемы при попытке повернуть дерево AVL. Я копался в сети целый день и думаю, что мой код должен работать. Я не знаю почему, но когда я проверяю свою функцию, я теряю поддеревья, которые должны были быть повернуты. Могу ли я получи…
28 дек '21 в 20:38
1
ответ
Как предотвратить ненужное вращение моего Красно-Черного Дерева?
Я реализую красно-черное дерево на Java и столкнулся с проблемой вращения во время вставки. В частности, когда я вставляю в дерево числа 10, а затем 13, оно выполняет поворот, хотя, насколько я понимаю, этого не должно быть, так как эти вставки не н…
11 ноя '23 в 22:33