Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
курсач Захара))).doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
295.42 Кб
Скачать

1.2 Обхід бінарного дерева

Часто виникає необхідність обійти усі вершини дерева для аналізу інформації, що в них знаходиться. Існують декілька порядків такого обходу, кожний з яких має певні властивості, важливі в тих чи інших алгоритмах: прямий (preorder), центрований (inorder) та зворотній (postorder). Реалізація бінарних дерев Реалізація бінарного дерева. Кожна вершина містить вказівники на праву та ліву дитину (left та right) Існують декілька варіантів конструювання бінарних дерев в залежності від задач, які вирішуються цими структурами та можливостей тої чи іншої мови програмування. Реалізація з використанням вказівників передбачає зберігання в кожній вершині дерева x разом з даними двох полів з вказівниками (правим та лівим) right [x] та left [x] на відповідних дітей цієї вершини. Модифікована реалізація бінарного дерева. Кожна вершина містить також вказівник на батьківську вершину. Також іноді додається вказівник p [x] на батьківську вершину. Це виявляється корисним, коли необхідний швидкий доступ до батьківської вершини та спрощує деякі алгоритми. Іноді достатньо тільки вказівника на батьківську вершину. Взагалі будь-яке орієнтоване дерево можна описати, знаючи тільки зв'язки від дітей до батьківської вершини. Деякі різновиди бінарних дерев (наприклад, червоно-чорні дерева або AVL-дерева), вимагають збереження в вершинах і деякої додаткової інформації. Якщо у вершини відсутня одна чи обидві дитини, відповідні вказівники ініціалізуються спеціальними "пустими значеннями.

Мал.3"Приклад обхида бінарного дерева"

1.3 Бінарне дерево на базі масиву

Бінарні дерева також можуть бути побудовані на базі масивів. Такий метод набагато ефективніший щодо економії пам'яті. В такому представленні, якщо вершина має порядковий номер i, то її діти знаходяться за індексами 2i+1 та 2i+2, а батьківська вершина за індексом ( (i-1) /2) (за умов, що коренева вершина має індекс 0). Інший варіант зберігання дерева в масиві - зберігати індекси дітей.

РОЗДІЛ ІІ

ОСНОВИ ПРОГРАМУВАННЯ

2.1. Комп’ютерна програма

Програма – це опис обчислень. Обчислення – це дії, здійснення яких доручається деякому виконавцю [5-6]. Отже виконавець повинний «розуміти» програму. Звичайно програма – це текст. Ціль обчислень – одержати результат. Основними об'єктами обчислень і результатом є значення. Значення – це конкретний елемент програми, об'єкт зміни, що в обчисленнях заміняє змінну. Вимоги, що висовуються до програми, обчисленням і результату різні.

Комп'ютерна програма, це програма якій властиво наступне: повна деталізація і стовідсоткова закінченість; абстракція обчислень – орієнтація звичайно на загальні зміни значень змінної; реалізація обчислень і одержання результату виконавцем–комп'ютером.

Процеси, що зв'язані зі створенням комп'ютерних програм називаються програмуванням [6]. Програмування і використання програм, називаються програмними процесами. Вони заповнюють простір між формулюванням задачі, для рішення якої необхідна комп'ютерна програма і знищенням програми.

Програму можна розглядати як систему – об'єкт, що володіє наступними властивостями: цілісності і членимості, наявність зв'язків, наявність організації, наявність інтегральної якості.

Властивість цілісності і членимості виражається в тім, що з одного боку програма – це цілісна конструкція, а з іншого боку – у її складі можна розрізняти елементи.

Елементи – це такі частини програми, що у даній програмі на визначеному рівні її розгляду не підлягають подальшому розподілу на частини. Поза програмою, елементи мають властивості, що мають загальне значення. Вони називаються системнозначущими. Входячи в програму, елемент здобуває властивості, що має значення тільки в даній програмі. Вони називаються системнозначущими.

Завдяки властивості цілісності і членимості програма повинна розглядатися як єдине ціле, але складається з взаємодіючих частин.

Властивість «наявність зв'язків» виражається в наявності стійких зв'язків між елементами програми, що перевершують по силі зв'язки з елементами, які не входять в дану програму. Зв'язки можуть бути з'єднуючими й інформаційними. Наявність міцних зв'язків дозволяє говорити про границю програми, а наявність границі веде до поняття зовнішнього середовища програми, що є сукупністю елементів, що не належать програмі, але зв'язані з нею, і впливають на неї. Звичайно цей вплив інтерпретується як надходження в програму вхідних значень (впливів) і одержання з програми значень результату.

Частина границі, через яку здійснюється передача впливів, називається інтерфейсом програми. Звичайна взаємодія програми і середовища носить двонаправленний характер.

Властивість наявність організації виражається у взаємозалежному поводженні елементів програми завдяки упорядкованості елементів і зв'язків програми в часі і просторі. У результаті останнього складається внутрішня структура програми, а властивості (функції) елементів програми трансформуються у функції (функцію) програми. Функції можуть бути корисні, марні і шкідливі.

Корисність програми визначається відповідністю її функції і конструкції вимогам, що пред'явленні до програми.

Властивість «наявність інтегральної якості» виражається в тім, що має місце якість, що притаманна програмі в цілому, але не властива жодному з її елементів окремо. Тому програма не зводиться до простої сукупності її елементів, бо розподілюючи програму на частини, і вивчаючи тільки їх окремо не можна зрозуміти інтегральну якість програми.

Усі програми можна розділити на три типи – S, P, E [7].

S (Specification) програма – це така, функція якої визначена формально специфікацією вимог задачі. Наприклад, програма малювання прямокутника на екрані, у заданній області; чи програма обчислення функції в заданій області зміни значень.

Для S-програм характерна повна визначеність вихідної задачі і вимог. Тому після виготовлення ці програми не змінюються. Якщо S-програма змінюється, то вона буде вирішувати іншу задачу і це буде інша програма.

P (Problem) програма – це така, що вирішує задачу, яка не має точної постановки, тому специфікація вимоги задачі і її рішення тільки приблизні. Вони будуть уточнюватися і буде змінюватись сама Р-програма. Але це буде не нова, а стара програма.

Прикладом такої програми може бути програма, що розраховує прогноз погоди.

Environment) програма – це така, що вирішує задачу, яка вимагає присутності програми в контексті реальної обстановки. У процесі використання Е-програми в реальному світі відношення до неї звичайно змінюється внаслідок зміни контексту і з'являється необхідність змінити програму. Прикладом такої програми є програма керування повітряним рухом.

Комп'ютерні програми, що задовольняють додатковим вимогам, пов'язаним з їхнім тривалим застосуванням користувачами які не є їхніми розробниками називаються програмними продуктами.

Сукупність програм і програмних продуктів називають програмним забезпеченням.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]