Общее дерево в бинарную сложность преобразования деревьев

StackOverflow https://stackoverflow.com/questions/4542324

Вопрос

Какова сложность времени и пространства преобразования общего дерева в бинарное?!

Спасибо

Это было полезно?

Решение

Я не знаю, что вы имеете в виду под "General Tree". Несмотря на это, сложность внедрения в сбалансированное бинарное дерево O(log n), куда n это количество предметов, которые в настоящее время находятся в дереве, поэтому построение полного дерева из некоторых списков предметов будет O(n log n), куда n это общее количество предметов, которые будут вставлены.

Вам также придется включить время, необходимое для получения предметов от другого дерева. Это время зависит от типа дерева, которое у вас есть. Ради аргумента я предполагаю, что вы можете пройти через это в линейное время, поэтому получение данных из существующего дерева O(n).

Это делает вашу общую сложность времени O(n + (n log n)).

Требуется дополнительное пространство n * sizeof(node), куда sizeof(node) размер вашего бинарного дерева. Обратите внимание, что если элементы, хранящиеся в узлах «общего дерева», являются указателями, вам не придется платить стоимость копирования фактических объектов-просто накладные расходы бинарного дерева, который обычно представляет собой три указателя: The Данные, ссылка левого ребенка и ссылка на правую дочернюю связь.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top