- •Розрахункова робота
- •«Проблемно – орієнтоване програмування»
- •«Програмування червоно – чорних дерев»
- •3. Алгоритми розв’язування задачі
- •1. Огляд літератури
- •1.1 Довідкові матеріали по мові с
- •1.2 Програмування дерев пошуку
- •1.3 Балансування червоно – чорних дерев
- •1.4 Аналіз інших методів організації баз даних
- •2. Формулювання задачі
- •3.1 Загальний алгоритм написання програми
- •3.2 Алгоритми основних функцій
- •3.2.1 Алгоритм пошуку вузла
- •3.2.2 Алгоритм додавання вузла
- •3.2.3 Алгоритм видалення вузла
- •3.3 Алгоритм вирішення задачі балансування
- •3.3.1 Алгоритм балансування при додаванні вузла
- •3.3.2 Алгоритм балансування при видаленні вузла
- •4. Програмні реалізації алгоритму
- •4.1 Загальні характеристики програми
- •4.2 Призначення програми
- •4.3 Вхідна інформація
- •4.4 Результуюча інформація
- •4.5 Структура програми
- •4.6 Таблиця ідентифікаторів програми
- •4.7 Середовище реалізації програми
- •4.8 Технологія виконання та від лагодження програми
- •5. Інструкція користувачеві програми
- •6. Контрольні приклади та аналіз їх реалізації
- •Висновок
- •Література
- •Додатки (код програми)
1. Огляд літератури
1.1 Довідкові матеріали по мові с
Матеріал у книгах [1, 2] використовувався для визначення особливостей і лексикону певних засобів мови С, а також для аналізу корисних функцій і бібліотек, які можуть бути корисні при програмній реалізації поставлених задач.
1.2 Програмування дерев пошуку
Аналізуючи теоретичну інформацію наведену у джерелах [1, 3, 4, 5] випливає загальна картина про структуру дерев пошуку і інших відомостей про дерева, які зазначені у пункті «Вступ». Виходячи з матеріалів у джерелах [1, 5] отримується загальна ідея програмування дерев, яка базується на створенні динамічних об’єктів одного класу структури, який містить адреси структур нащадків і адресу структури даних, яка містить ключ і інші дані. Ця концепція організації даних вимагає оперування з адресами. Детальніше про це зазначено у підпункті «Програмування дерев» пункту «Вступ». Також виходячи з матеріалів двох вище наведених джерел, при роботі з деревами слід використовувати рекурсивний спосіб організації функцій, які оперують з ними.
1.3 Балансування червоно – чорних дерев
У матеріалах [3, 5] зазначені основні принципи і алгоритми балансування червоно – чорних дерев при додаванні нового вузла до дерева. У матеріалах [6, 7] вказані методи і алгоритми балансування при видаленні вузла з дерева. Детальніше про алгоритми балансування у пункті «Алгоритми розв’язування задачі».
1.4 Аналіз інших методів організації баз даних
Згідно з джерелом [1], а також іншими додатковими матеріалами, окрім дерев, існують такі методи організації даних: масиви, списки, розріджені масиви і хеш-таблиці. Кожен з наведених методів має свої переваги і недоліки у порівнянні ї деревами. У загальному дерева відрізняються складнішою будовою і програмною реалізацією, але меншими часовими затратами при пошуку, а також мінімізованими витратами не використовуваної памяті. Особливої уваги заслуговують хеш-таблиці, які у різних випадках і структурах їх організації набувають більшої чи меншої міри ефективності у порівнянні з деревами.
2. Формулювання задачі
Дана задача відноситься до створення і організації баз даних, а також локальних даних у прикладних програмах, для забезпечення швидкого пошуку і опрацювання даних. Метою розв’язання даної задачі являється: реалізація шаблону бази даних, концепція побудови памяті якої базується на теорії дерев, з мінімальним інтерфейсом і можливістю легкого доручення даних до елементів бази даних відносно потреб; організація можливостей створення, видалення і пошуку користувачем даних, а також інших можливостей, які вказані у підпункті «Цілі і мета» пункту «Вступ»; створення гнучких функцій для роботи з деревами, які можна використовувати при створенні додаткових можливостей програми. Після реалізації даного шаблону, для отримання повноцінної бази даних, залишається приєднати певні дані до елементів бази, залежно від потреби, але це здійснюватися не буде, оскільки створюється шаблон, тому оперувати програма буде тільки з ключами.
