ямий) обхід - спочатку обробляється поточний вузол, потім ліве і праве піддерева;
інфіксной (симетричний) обхід - спочатку обробляється ліве піддерево поточного вузла, потім корінь, потім праве піддерево;
постфіксний (зворотний) обхід - спочатку обробляються ліве і праве піддерева поточного вузла, потім сам вузол.
Рисунок 2.1 - Бінарне дерево пошуку
Виходячи з малюнка 2.1 можна зробити наступні висновки:
префіксний обхід: A, B, D, H, E, C, F, I, J, G;
інфіксной обхід: D, H, B, E, A, I, F, J, C, G;
постфіксний обхід: H, D, E, B, I, J, F, G, C, A.
Основним з достоїнств постфіксними обходу є - знаходження мінімального елемента в бінарному дереві [5]. Так як першою умовою даного обходу є: «Обхід лівого піддерева», а за умовою організації бінарного дерева - самий лівий елемент є мінімальним.
Також до гідності даного методу можна віднести швидку швидкість перебування елемента, оскільки буде відбувається порівнювання поточного елемента (в бінарному дереві) з елементом який потрібно знайти і вже за властивостями організації бінарних дерев слід «дійти» до необхідного елемента [7].
3. Опис розробленого програми
.1 Опис методів
У програмі міститься безліч методів, властивостей і класів, кожен з яких виконує свої функції і забезпечує коректне виконання всіх дій.
Клас «Node» - вузол бінарного дерева, містить у собі такі методи:
«Add» - метод додавання вузла в дерево пошуку;
«Find_v1» -метод пошуку елемента в бінарному дереві, способом обходу «У глибину - зверху вниз (префіксний обхід)», по заданому ключу (введеним користувачем в окремому вікні);
«Shift» -метод для здійснення заміни елементів в дереві;
«Delete» -метод видалення елемента з бінарного дерева (описані всі 3 випадки видалення елемента з дерева);
«Max» - метод, який здійснює пошук максимального елемента в дереві по засобом операторів відносини і алгоритму організації бінарногодерева;
«Find_v2» -метод, що здійснює сам «Обхід» бінарногодерева способом «У глибину - зверху вниз (префіксний обхід)»;
«Download» - метод завантаження бінарного дерева в компоненти «DataGridView» і «TreeView»;
«Save» -метод збереження (вивантаження) бінарногодерева у файл, по зазначеному шляху користувачем.
Кожному з перерахованих методів вище (крім Find_v2 і «Download») відповідає свій пункт в меню («MenuStrip»):
пункт меню «Вставка» - викликає метод «Add»;
«Пошук - Пошук елемента» - здійснюється виконання методу «Find_v1»;
«Пошук - Пошук максимального елемента» - відбувається виконання методу «Max»;
«Зміна» - виклик методу «Shift»;
«Видалення» - здійснення методу «Delete».
Клас «Sportsman» - спортсмен (описана предметна область з її полями і назвою клас), включає в себе основні методи:
«CompareTo» -переопределеніе методу інтерфейсу «IComparable», який порівнює поточний екземпляр з іншим об'єктом того ж типу і повертає ціле число, яке показує, чи розташований поточний екземпляр перед, після або на тій же позиції в порядку сортування, що й інший об'єкт;
«Compare_Enum» -метод, який здійснює перевірку налічіявіда спорту ліченого з файлу у виді спорту зазначеним у перерахуванні «Enum».
3.2 Опис роботи методів
Метод «Add» - викликається при натисканні пунктів меню «Файл - Відкрити» і «Дані - Вставка». Сам алгоритм роботи даного методу представлений на малюнку 3.1.
Малюнок 3.1 - Блок схема методу «Add»
Метод «Find_v2» -Здійснює сам обхід бінарного дерева (є практично основним методом програми). Даний метод не викликається за допомогою меню, а виконує роль другорядного методу (підпрограми) для решти методів (таких як: «Find_v1», «Shift», «Delete»).
Алгоритм обходу (метод «Find_v2») представлений на малюнку 3.2.
Рисунок 3.2 - Блок схема методу «Find_v2»
Метод «Shift» - метод для здійснення заміни елементів в дереві. Сам алгоритм полягає в наступному:
зробити пошук елемента за допомогою обходу (методу «Find_v2»);
замінити знайдених елемент на новий елемент файлі;