Подтвердить что ты не робот

Разница между полным двоичным деревом и сбалансированным двоичным деревом

В чем разница между сбалансированным бинарным деревом и полным бинарным деревом?
Верно ли говорить, что каждое полное двоичное дерево является сбалансированным деревом?
Как насчет наоборот?

4b9b3361

Ответ 1

A сбалансированное двоичное дерево - это двоичное дерево, где глубина двух поддеревьев каждого node никогда не будет отличаться более чем на 1.

A полное двоичное дерево - это двоичное дерево, все уровни которого за исключением последнего уровня полностью заполнены, а все листья на последнем уровне все слева.

Ниже представлено сбалансированное двоичное дерево, но не полное двоичное дерево. Каждое полное двоичное дерево сбалансировано, но не наоборот.

        1
     1     1
   1   1     1
 1 

Как подразумевается, в полном дереве всегда разность уровней будет не более 1, поэтому она всегда сбалансирована.

Ответ 2

Дерево считается полным, когда у двоичного дерева высотой h все его листья на уровне h, а у каждого родителя ровно два потомка.

Дерево считается полным, когда все уровни, кроме последнего, содержат как можно больше узлов, а узлы на последнем уровне заполнены слева направо. (Не полный, но полный)

Когда каждый узел в двоичном дереве имеет два поддерева, высота которых точно совпадает, дерево считается полностью сбалансированным

Полностью сбалансированные деревья полны

Дерево сбалансировано по высоте или просто сбалансировано, если поддеревья узла отличаются не более чем на один