Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 11

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ

Національний університет «Львівська політехніка»


Інститут просторового проектування та
перспективних технологій
Кафедра інформаційних систем і технологій

Індивідуальна робота
з дисципліни
«Дискретна математика»
Поняття бінарного дерева. Алгоритм побудови та пошуку для бінарного
впорядковного дерева. Блок-схема алгоритм

Виконав:
студент групи КН-31з
Флисник Юрій
Перевірила:
доц. кафедри ІСТ
Сенета М.Я.
Зміст
Бінарне Дерево...............................................................................................................................................2
1.1 Бінарне дерево......................................................................................................................................3
Алгоритм побудови і пошуку.........................................................................................................................4
2.1 Алгоритм побудови бінарного впорядкованого дерева....................................................................5
2.2 Алгоритм пошуку в бінарному впорядкованому дереві та його недоліки.......................................6
Блок-Схеми......................................................................................................................................................7
3.1 Блок-схема основні поняття.................................................................................................................8
3.2 Типи блок-схем.....................................................................................................................................8
Висновки..........................................................................................................................................................9
Використані Джерела...................................................................................................................................10
Бінарне Дерево

1.1 Бінарне дерево


Бінарне дерево - це структура даних, яка дозволяє зберігати, пошукати і
сортувати дані за допомогою вузлів, які мають не більше двох дочірніх вузлів.
Бінарне дерево можна уявити як ієрархічну організацію даних, де кожен вузол
має певне значення або ключ, і де кожен вузол може мати лівого і правого
нащадка, які є також бінарними деревами. Бінарне дерево має один кореневий
вузол, який не має батьківського вузла, і який є початком дерева. Бінарне
дерево може бути порожнім, якщо воно не має жодного вузла.
Бінарне дерево можна представити графічно, малюючи кожен вузол у вигляді
кола або прямокутника, і з’єднуючи його з його дочірніми вузлами лініями.
Наприклад, наступне бінарне дерево має п’ять вузлів, з яких три мають по два
дочірні вузли, а два є листками, тобто не мають дочірніх вузлів:
Бінарне дерево може мати різні властивості, в залежності від того, як воно
побудоване і які операції з ним виконуються. Однією з таких властивостей є
впорядкованість, яка означає, що значення кожного вузла відповідає певному
порядку, що спрощує пошук і вставку нових елементів. Бінарне впорядковане
дерево - це бінарне дерево, в якому значення кожного вузла не менше за
значення його лівого дочірнього вузла і не більше за значення його правого
дочірнього вузла. Наприклад, наступне бінарне дерево є впорядкованим,
оскільки воно задовольняє цю умову:
Бінарне впорядковане дерево може використовуватися для зберігання, пошуку і
сортування даних, оскільки воно дозволяє ефективно виконувати ці операції.
Для пошуку елемента з певним значенням в бінарному впорядкованому дереві,
потрібно почати з кореневого вузла і порівнювати його значення з шуканим.
Якщо вони співпадають, то елемент знайдений. Якщо шукане значення менше
за значення кореневого вузла, то потрібно продовжити пошук в лівому
піддереві. Якщо шукане значення більше за значення кореневого вузла, то
потрібно продовжити пошук в правому піддереві. Процес повторюється, поки
не буде знайдений елемент або не буде досягнуто листка, що означає, що
елемент відсутній в дереві. Для вставки нового елемента в бінарне
впорядковане дерево, потрібно знайти місце, де його можна додати, за
допомогою того ж алгоритму пошуку, і створити новий вузол з цим елементом,
з’єднавши його з батьківським вузлом.
Бінарне дерево - це корисна і гнучка структура даних, яка дозволяє зберігати,
пошукати і сортувати дані за допомогою вузлів, які мають не більше двох
дочірніх вузлів. Бінарне впорядковане дерево - це бінарне дерево, в якому
значення кожного вузла відповідає певному порядку, що спрощує пошук і
вставку нових елементів. Бінарне дерево можна представити графічно,
малюючи кожен вузол у вигляді кола або прямокутника, і з’єднуючи його з
його дочірніми вузлами лініями.
Алгоритм побудови і пошуку

2.1 Алгоритм побудови бінарного впорядкованого дерева


Алгоритм побудови бінарного впорядкованого дерева полягає в тому, що для
кожного нового елемента, який потрібно додати до дерева, ми порівнюємо його
з кореневим вузлом і рухаємося вниз по дереву, вибир
аючи ліве або праве піддерево в залежності від того, чи є новий елемент
меншим або більшим за поточний вузол. Коли ми знаходимо порожнє місце, де
можна вставити новий елемент, ми створюємо новий вузол з цим елементом і
з’єднуємо його з батьківським вузлом.
Алгоритм побудови бінарного впорядкованого дерева - це метод створення
структури даних, яка складається з вузлів, кожен з яких має не більше двох
дочірніх вузлів, називаних лівим і правим. Бінарне впорядковане дерево - це
бінарне дерево, в якому значення кожного вузла не менше за значення його
лівого дочірнього вузла і не більше за значення його правого дочірнього вузла.
Бінарне впорядковане дерево може використовуватися для зберігання, пошуку і
сортування даних.
Основна ідея алгоритму побудови бінарного впорядкованого дерева полягає в
тому, що для кожного нового елемента, який потрібно додати до дерева, ми
порівнюємо його з кореневим вузлом і рухаємося вниз по дереву, вибираючи
ліве або праве піддерево в залежності від того, чи є новий елемент меншим або
більшим за поточний вузол. Коли ми знаходимо порожнє місце, де можна
вставити новий елемент, ми створюємо новий вузол з цим елементом і
з’єднуємо його з батьківським вузлом.
Основні кроки алгоритму побудови бінарного впорядкованого дерева такі:
 Створити порожнє дерево.
 Отримати елементи вхідного масиву або списку.
 Для кожного елемента виконати наступні дії:
o Якщо дерево порожнє, створити новий вузол з елементом і
призначити його коренем дерева.
o Інакше, починаючи з кореня, порівняти елемент з поточним вузлом.
o Якщо елемент менший за поточний вузол, перейти в ліве піддерево.
Якщо ліве піддерево порожнє, створити новий вузол з елементом і
призначити його лівим дочірнім вузлом поточного вузла. Інакше,
повторити крок 3 з лівим дочірнім вузлом.
o Якщо елемент більший за поточний вузол, перейти в праве
піддерево. Якщо праве піддерево порожнє, створити новий вузол з
елементом і призначити його правим дочірнім вузлом поточного
вузла. Інакше, повторити крок 3 з правим дочірнім вузлом.
o Якщо елемент рівний поточному вузлу, можна або ігнорувати його,
або додати його до лівого або правого піддерева, залежно від
вибраної стратегії.
Приклад побудови бінарного впорядкованого дерева для масиву [8, 3, 10, 1, 6,
14, 4, 7, 13] можна побачити на наступному малюнку:
2.2 Алгоритм пошуку в бінарному впорядкованому дереві та його недоліки
Алгоритм пошуку в бінарному впорядкованому дереві - це метод знаходження
елемента з певним ключем в структурі даних, яка містить вузли, пов’язані в
ієрархічному порядку. Основна ідея алгоритму полягає в тому, що при кожному
кроці ми порівнюємо ключ, який шукаємо, з ключем поточного вузла, і в
залежності від результату переходимо в ліве або праве піддерево цього вузла.
Якщо ключі співпадають, ми знаходимо шуканий елемент. Якщо ключ, який
шукаємо, менший за ключ поточного вузла, ми переходимо в ліве піддерево,
оскільки всі елементи в лівому піддереві мають менші ключі, ніж поточний
вузол. Якщо ключ, який шукаємо, більший за ключ поточного вузла, ми
переходимо в праве піддерево, оскільки всі елементи в правому піддереві
мають більші ключі, ніж поточний вузол. Процес повторюється, поки ми не
знайдемо шуканий елемент або не дійдемо до листка, що означає, що шуканий
елемент відсутній в дереві.
Основні переваги алгоритму пошуку в бінарному впорядкованому дереві - це
його швидкість і ефективність. Якщо дерево збалансоване, тобто має
мінімальну можливу висоту для заданої кількості елементів, то час пошуку
буде пропорційний логарифму кількості елементів. Це означає, що пошук в
бінарному дереві пошуку набагато швидший, ніж пошук в невпорядкованому
масиві або списку, де час пошуку пропорційний кількості елементів. Крім того,
бінарне дерево пошуку дозволяє виконувати інші операції, такі як вставка,
видалення, пошук мінімального або максимального елемента, пошук
наступного або попереднього елемента за заданим ключем, з тією ж
асимптотичною складністю, що і пошук.
Основні недоліки алгоритму пошуку в бінарному впорядкованому дереві - це
його залежність від форми дерева і складність підтримки його збалансованості.
Якщо дерево не збалансоване, тобто має велику різницю в глибині лівого і
правого піддерев, то час пошуку може зростати до лінійного, що робить
алгоритм неефективним. Для підтримки збалансованості дерева потрібно
використовувати спеціальні алгоритми, такі як обертання, злиття, розбиття, що
збільшує складність реалізації і виконання алгоритму. Крім того, бінарне
дерево пошуку вимагає більше пам’яті, ніж масив або список, оскільки кожен
вузол містить додаткові посилання на своїх нащадків і предків.
Блок-Схеми
3.1 Блок-схема основні поняття
Блок-схеми - це спосіб графічного представлення алгоритмів, які складаються з
послідовності кроків, що виконують певні дії. Блок-схеми дозволяють наочно
показати логіку роботи алгоритму, використовуючи стандартні символи для
різних типів операцій, даних і зв’язків між ними. Блок-схеми можуть бути
корисними для аналізу, проектування, документування і реалізації алгоритмів.
Основні елементи блок-схеми - це блоки, лінії і напрямки. Блоки - це
геометричні фігури, які мають певну форму і розмір, і які містять в собі
текстову інформацію про дію, яку виконує алгоритм. Лінії - це сегменти, які
з’єднують блоки між собою і показують послідовність виконання алгоритму.
Напрямки - це стрілки, які вказують, в якому порядку слід переходити від
одного блоку до іншого.
це спосіб представлення алгоритму в графічній формі, у вигляді геометричних
фігур, сполучених між собою лініями (стрілками).
3.2 Типи блок-схем

Залежно від типу дії, яку виконує алгоритм, блоки можуть мати різну форму.
Найпоширеніші типи блоків - це:
 Еліпс - позначає початок або кінець алгоритму. Всередині еліпса
записується слово "Початок" або "Кінець".
 Прямокутник - позначає процес, тобто будь-яку операцію, яка змінює
стан даних або системи. Всередині прямокутника записується команда
або вираз, який виконується алгоритмом.
 Ромб - позначає умову, тобто перевірку якоїсь логічної умови, яка
визначає подальший хід алгоритму. Всередині ромба записується умова,
яка повинна бути або істинною, або хибною. З ромба виходять дві лінії,
які ведуть до наступних блоків, залежно від результату умови. На лініях
можна писати "Так" або "Ні", щоб показати, який варіант відповідає якій
гілці алгоритму.
 Паралелограм - позначає ввід або вивід даних, тобто зчитування або
виведення даних на екран, клавіатуру, файл, принтер і т.д. Всередині
паралелограма записується, які дані вводяться або виводяться, і звідки
або куди.
 Коло - позначає з’єднувальний блок, тобто точку, де алгоритм
розгалужується або збігається. Всередині кола записується номер блоку,
до якого слід перейти. Кола використовуються для спрощення схеми,
коли лінії перетинаються або займають багато місця.
Висновки
У цій роботі ми розглянули основні поняття, властивості і застосування
бінарних дерев, які є важливими структурами даних в програмуванні та
математиці. Ми дізналися, що бінарне дерево складається з вузлів, кожен з яких
має не більше двох дочірніх вузлів, і які можуть зберігати будь-які дані. Ми
також дізналися, що бінарне впорядковане дерево - це бінарне дерево, в якому
значення кожного вузла відповідає певному порядку, що дозволяє ефективно
виконувати операції пошуку, вставки і видалення елементів.
Ми розглянули алгоритми побудови та пошуку для бінарного впорядкового
дерева, які базуються на принципі порівняння значень елементів з вузлами
дерева і руху в ліве або праве піддерево відповідно. Ми також показали, як
можна використовувати рекурсію або ітерацію для реалізації цих алгоритмів.
Ми розглянули блок-схеми як графічний спосіб представлення алгоритмів, який
використовує стандартні символи для різних типів операцій, даних і зв’язків
між ними. Ми навели приклади блок-схем для алгоритмів побудови та пошуку
в бінарному впорядкованому дереві, які демонструють логіку роботи
алгоритмів. Ми також розглянули основні елементи блок-схем, такі як еліпси,
прямокутники, ромби, паралелограми, кола і лінії, і їх значення.
Таким чином, ми поглибили свої знання про бінарні дерева, які є корисними
інструментами для розв’язання різних задач в програмуванні та математиці. Ми
також навчилися використовувати блок-схеми для наочного показу алгоритмів,
які працюють з бінарними деревами
Використані Джерела
1. https://ua.wikipedia.org/wiki/%D0%91%D0%BB%D0%BE%D0%BA-
%D1%81%D1%85%D0%B5%D0%BC%D0%B0
2. https://yevshan.com.ua/info/006/content/content3.html
3. https://ukrayinska.libretexts.org

You might also like