ками. Все це дуже нагадує дії над елементами списку [6].
1.3 Вироджені дерева
При роботі з двійковими деревами пошуку можливий випадок, коли дерево пошуку по суті прийме вигляд лінійного пов'язаного списку (наприклад, якщо елементи подавалися на вхід у порядку зростання), в даному випадку бінарне дерево пошуку називається виродженим [3 ]. У такому випадку пошук елемента в дереві буде займати лінійний час. Одним із способів запобігання подібній ситуації є балансування дерева у міру додавання елементів.
2. Опис завдання і вихідних даних
.1 Постановка завдання
У курсовому проекті поставленим завданням є розробити довідково-інформаційну (Windows-додаток) систему на мові програмування C # виконує наступні функції:
читання з текстового файлу інформації про об'єкти класу відповідно до варіанту (таблиця 2.1). Кількість записів не менше 50. Передбачити наявність в файлі не коректних записів, які в процесі роботи програми не будуть оброблятися. Використовувати регулярні вирази (передбачити перевірку по можливості всіх полів); ??
висновок вихідних даних у вигляді таблиці;
візуалізація хеш-таблиці або бінарногодерева;
пошук інформації по заданому ключу або способу обходу;
редагування вихідних даних (вставка, видалення, заміна) з внесенням відповідних змін до хеш-таблицю або бінарне дерево пошуку. Використовувати регулярні вирази;
виведення довідкової інформації про програмний продукт і про автора;
демонстрація перевантажених операторів;
пошук максимального об'єкта.
2.2 Опис вихідних даних
Вихідними даними завдання є:
назва предметної області, а точніше назва класу і його основні поля вказані в таблиці 2.1, яке вибирається відповідно до варіанту виданим викладачем;
текстовий файл з інформацією про об'єкти класу відповідно до варіанту. Кількість записів не менше 50. Передбачити наявність в файлі не коректних записів, які в процесі роботи програми не будуть оброблятися;
бінарне дерево пошуку, ключ і спосіб обходу дерева вказано в таблиці 2.2.
Таблиця 2.1-Опис класу
№ варіантаНазваніе классаПоля14СпортсменФІО, вік, кількість перемог, вид спорту
Таблиця 2.2 - Спосіб обходу бінарного дерева
№ варіантаКлючСпособ обходу бінарного дереваОбход виробляти з помощью14ФІООбход в глибину - зверху вниз (префіксний обхід) Стека
На основі зазначених вихідних даних потрібно виконати наступне:
створити клас згідно варіанту. Клас повинен містити наступні елементи:
опис полів класу (виділене жирним курсивов поле оформити як перерахування);
конструктори з параметрами і за замовчуванням, а також необхідні властивості і методи;
перевантаження одного з бінарних операторів (вказати точно який обраний самостійно бінарний оператор і що реалізує);
перевантаження одного з операторів відносини (вказати точно який обраний самостійно оператор відносини і що реалізує);
перевантаження префіксного і постфіксними инкремента (вказати призначення инкремента);
перевантаження операторів lt; lt; і gt; gt; (вказати призначення операторів);
створення масиву з об'єктів вашого класу;
функцію, що визначає максимальний об'єкт (вказати за якою ознакою вибирається максимальний об'єкт). Для порівняння використовувати перевантажений оператор відносини;
передбачити обробку і ініціалізацію виняткових ситуацій;
Клас повинен реалізовувати інтерфейс IComparable;
розробити інтерфейс Windows-програми автоматизованої системи. Крім самостійно обраних елементів управління, обов'язково можуть бути присутніми наступні елементи управління: MenuStrip, ContextMenuStrip, Button, TextBox, DataGridView, TextBox, ToolTIp, Panel, Label, ComboBox, OpenFileDialog, SaveFileDialog, PictureBox, CheckBox, RedioButton.
2.3 Аналіз поставленого завдання
Обхід в глибину проводиться рекурсивно або з використанням стека. В обох випадках можна обходити вузли дерева в різній послідовності [4]. Обхід починається від кореня. Виділяють три найбільш важливих порядку обходу в глибину:
префіксний (пр...