logo

Повне бінарне дерево проти повного бінарного дерева

Що таке повне бінарне дерево?

Повне бінарне дерево можна визначити як a бінарне дерево у якому всі вузли мають 0 або двох дітей. Іншими словами, повне бінарне дерево можна визначити як бінарне дерево, у якому всі вузли мають двох дочірніх вузлів, за винятком листових вузлів.

Наведене нижче дерево є повним бінарним деревом:

Повне бінарне дерево проти повного бінарного дерева

Наведене вище дерево є повним двійковим деревом, оскільки всі вузли, окрім листкових, мають двох дочірніх елементів.

Повна теорема про двійкове дерево:

найкращий хентай

Розглянемо двійкове дерево T як непорожнє дерево, тоді:

  • Нехай I — внутрішні вузли в дереві, а L — листковий вузол у дереві, тоді кількість листкових вузлів дорівнюватиме:
    L = I + 1
  • Якщо T має I кількість внутрішніх вузлів і N є загальною кількістю вузлів, тоді загальна кількість вузлів дорівнюватиме:
    N = 2I + 1
  • Якщо T містить «N» загальну кількість вузлів і «I» є кількістю внутрішніх вузлів, тоді кількість внутрішніх вузлів буде дорівнювати:
    I = (N-1)/2
  • Якщо «T» має «N» загальну кількість вузлів, а «L» — кількість листових вузлів, тоді кількість листових вузлів дорівнюватиме:
    L = (N+1)/2
  • Якщо «T» містить кількість листових вузлів «L», тоді загальна кількість вузлів дорівнюватиме:
    N = 2L - 1
  • Якщо «T» має «L» кількість листових вузлів, а «I» — це кількість внутрішніх вузлів, тоді кількість внутрішніх вузлів дорівнюватиме:
    I = L - 1

Що таке повне бінарне дерево?

Двійкове дерево називається повним бінарним деревом, якщо всі рівні заповнені повністю, крім останнього рівня, який заповнюється зліва.

Наведене нижче дерево є повним бінарним деревом:

Повне бінарне дерево проти повного бінарного дерева

Повне бінарне дерево подібне до повного бінарного дерева, за винятком двох відмінностей, які наведено нижче:

  • Заповнення листкового вузла необхідно починати з крайньої лівої сторони.
  • Не обов’язково, щоб останній листовий вузол мав правильний однорідний вузол.

Давайте розберемо вищезазначені моменти на прикладі:

успадкування в c++

Розглянемо дерево нижче:

Повне бінарне дерево проти повного бінарного дерева

Наведене вище дерево є повним двійковим деревом, але не повним бінарним деревом, оскільки вузол 6 не має правого брата.

що таке jquery

Створення повного бінарного дерева

Припустимо, що ми маємо масив із 6 елементів, як показано нижче:

Повне бінарне дерево проти повного бінарного дерева

Наведений вище масив містить 6 елементів, тобто 1, 2, 3, 4, 5, 6. Щоб створити повне бінарне дерево, необхідно виконати наступні дії:

Крок 1: Спочатку ми виберемо перший елемент масиву, тобто 1, і створимо кореневий вузол дерева. Кількість доступних елементів на першому рівні - 1.

крок 2: Тепер виділимо другий і третій елементи масиву. Зберігайте другий і третій елементи масиву як лівий і правий дочірні елементи кореневого вузла відповідно, як показано нижче:

Повне бінарне дерево проти повного бінарного дерева

Як ми бачимо вище, кількість елементів, доступних на другому рівні, становить 2.

крок 3: Тепер ми виберемо наступні два елементи з масиву, тобто 4 і 5. Збережіть ці два елементи ліворуч і праворуч від вузла 2, як показано нижче:

Повне бінарне дерево проти повного бінарного дерева

Як ми можемо помітити вище, вузли 4 і 5 є лівим і правим дочірніми елементами вузла 2 відповідно.

крок 4: Тепер ми виберемо останній елемент масиву, тобто 6, і залишимо його лівим дочірнім елементом вузла 3, оскільки ми знаємо, що в повному бінарному дереві вузли заповнюються з лівого боку, як показано нижче:

java case оператор
Повне бінарне дерево проти повного бінарного дерева

Як ми бачимо, другий рівень містить 3 елементи.

Давайте зрозуміємо відмінності між повним і повним бінарним деревом через зображення.

  1. Двійкове дерево, яке показано нижче, не є ні повним, ні повним бінарним деревом. Це не повне бінарне дерево, оскільки вузол 3 має лише одну дочірню структуру. Це також не є повним двійковим деревом, оскільки вузли повинні бути заповнені з лівого боку, але вузол 3 має правий дочірній елемент і не має лівого дочірнього.
    Повне бінарне дерево проти повного бінарного дерева
  2. Двійкове дерево, яке показано нижче, є повним бінарним деревом, але не повним бінарним деревом. Це повне двійкове дерево, оскільки всі вузли мають або 0, або 2 дітей. Це не повне двійкове дерево, оскільки вузол 3 не має дочірніх елементів, тоді як вузол 2 має своїх дочірніх елементів, і ми знаємо, що вузли повинні бути заповнені з лівого боку в повному бінарному дереві.
    Повне бінарне дерево проти повного бінарного дерева
  3. Двійкове дерево, яке показано нижче, є повним бінарним деревом, але не повним бінарним деревом. Це повне бінарне дерево, оскільки всі вузли залишаються заповненими. Це не повне бінарне дерево, оскільки вузол 2 має лише одного дочірнього елемента.
    Повне бінарне дерево проти повного бінарного дерева
  4. Двійкове дерево, яке показано нижче, є як повним, так і повним двійковим деревом. Це повне бінарне дерево, оскільки всі вузли залишаються заповненими. Це повне бінарне дерево, оскільки всі вузли мають 0 або 2 дочірніх елементів.
    Повне бінарне дерево проти повного бінарного дерева