
Звіт повинен містити
Тема й ціль роботи
Завдання.
Хід роботи.
Код програми.
Висновок.
Практична робота № 6 Тема: Реалізація дерев
Ціль роботи: набуття практичних навичок опрацювання таких динамічних структур, як зв'язні списки і дерева
Завдання
Розробити програми які виконують операції, вказані в індивідуальному завданні.
Розробити програму для роботи з двонапрямленими зв'язними списками. Кожен елемент списку містить посилання на наступний і попередній елементи у списку. Програма має забезпечувати введення і побудову списку.
Розробити програму для роботи з деревами. Кожен елемент дерева містить посилання на батьківський елемент і посилання на елементи-нащадки (необмежена кількість). Програма має забезпечувати введення і побудову дерева.
Кожен елемент списку містить інформаційне поле (атрибут) деякого простого типу: символ, стрічка, число.
Всі операції над динамічними структурами мають супроводжуватися відповідним виведенням на екран.
У контрольних прикладах забезпечити опрацювання структур з 10-20 елементами.
Таблиця 6.1 – Варіанти індивідуальних завдань
№ |
Двонапрямлений зв'язний список |
Дерево |
1 |
Видалення елемента зі списку за вказаним значенням інформаційного атрибута. |
Знайти значення максимуму і мінімуму арифметичних чисел у дереві, кожен елемент якого містить деяке число як значення інформаційного показника. |
№ |
Двонапрямлений зв'язний список |
Дерево |
2 |
Додавання нового елемента у список після вказаного елемента за значенням інформаційного атрибута. |
Визначення кількості нащадків у кожного елемента дерева. |
3 |
Додавання нового елемента у список перед вказаним елементом за значенням інформаційного атрибута. |
Визначення елемента дерева, який має найменшу кількість безпосередніх нащадків. |
4 |
Додавання елемента у список у вказану позицію. |
Визначення найкоротшої стрічки у дереві, кожен елемент якого містить деяку стрічку як значення інформаційного показника. |
5 |
Видалення зі списку повторень. |
Додавання нового елемента в дерево як предка елемента зі вказаним значенням інформаційного атрибута. |
6 |
Видалення другого і передостаннього елемента списку. |
Розбиття дерева на два за вказаним значенням інформаційного атрибута елемента для розбиття. |
7 |
Видалення елемента зі списку за вказаним порядковим номером. |
Видалення елемента з дерева за вказаним значенням інформаційного атрибуту. (Нащадки видаленого елемента стають нащадками батьківського елемента видаленого) |
8 |
Доповнення списку з обох кінців. |
Видалення елемента з дерева за вказаним значенням інформаційного атрибуту. (Нащадки видаляються) |
9 |
Розбиття списку на два за вказаним порядковим номером елемента для розбиття. |
Визначення середнього арифметикного чисел у дереві, кожен елемент якого містить деяке число як значення інформаційного показника. |
10 |
Розбиття списку на два списки за вказаним значенням інформаційного атрибута елемента для розбиття. |
Визначення елемента дерева, який розміщений найдалі від кореня дерева. |
11 |
Розбиття списку на два, один з яких містить усі елементи зі значенням інформаційного атрибута меншим від вказаного значення інформаційного атрибут, а інший, відповідно, зі значеннями більшими від вказаного значення. |
Визначення елемента дерева, який має найбільшу кількість безпосередніх нащадків. |
12 |
Сортування списку методом бульбашки. |
Визначення найдовшої стрічки в дереві, кожен елемент якого містить деяку стрічку як значення інформаційного показника. |
№ |
Двонапрямлений зв'язний список |
Дерево |
13 |
Видалення всіх елементів із парним порядковим номером. |
Додавання нового елемента в дерево як нащадка елемента із вказаним значенням інформаційного атрибута. |
14 |
Видалення всіх елементів з непарним порядковим номером. |
Розбиття дерева на два дерева за вказаним значенням інформаційного атрибута елемента для розбиття. |
15 |
Додавання нових елементів у непарні позиції в списку. |
Видалення елемента з дерева за вказаним значенням інформаційного атрибута. (Нащадки видаленого елемента стають нащадками батьківського елемента видаленого) |
16 |
Додавання нових елементів у прані позиції в списку. |
Видалення елемента з дерева за вказаним значенням інформаційного атрибута. (Нащадки видаляються) |
17 |
Розбиття списку на два за вказаним порядковим номером елемента для розбиття. |
Додавання нового елемента в дерево як предка елемента із вказаним значенням інформаційного атрибута. |
18 |
Розбиття списку на два за вказаним значенням інформаційного атрибуту елементу для розбиття. |
Розбиття дерева на два за вказаним значенням інформаційного атрибута елемента для розбиття. |
19 |
Розбиття списку на два, один з яких містить всі елементи зі значенням інформаційного атрибута |
Видалення елемента з дерева за вказаним значенням інформаційного атрибуту. |
20 |
Видалення всіх елементів із парним порядковим номером. |
Визначення середнього арифметичного чисел в дереві кожен елемент якого містить деяке число як значення інформаційного показника. |
21 |
Видалення всіх елементів із непарним порядковим номером. |
Визначення елемента дерева, який розміщений найдалі від кореня дерева. |
22 |
Додавання нових елементів на непарні позиції в списку. |
Визначення елемента дерева, який має найбільшу кількість безпосередніх нащадків. |
23 |
Додавання нових елементів на прані позиції в списку. |
Визначення всіх листків дерева. |
24 |
Видалення елемента зі списку за вказаним значенням інформаційного атрибуту. |
Додавання нового елемента в дерево як нащадка елемента із вказаним значенням інформаційного атрибута. |
25 |
Додавання нового елемента в список після вказаного елемента за значенням інформаційного атрибута. |
Розбиття дерева на два дерева за вказаним значенням інформаційного атрибута елементу для розбиття. |
№ |
Двонапрямлений зв'язний список |
Дерево |
26 |
Додавання нового елемента у список перед вказаним елементом за значенням інформаційного атрибуту. |
Видалення елемента з дерева за вказаним значенням інформаційного атрибута. |
27 |
Додавання елемента в список у вказану позицію. |
Видалення елемента з дерева за вказаним значенням інформаційного атрибуту. (Нащадки видаляються) |
28 |
Видалення зі списку повторень. |
Визначення всіх листків дерева. |
Звіт повинен містити
Тема й ціль роботи
Завдання.
Хід роботи.
Код програми.
Висновок.
Практична робота № 7
Тема: Реалізація бінарних дерев
Ціль роботи: роботи: набуття навичок програмування дерев
Завдання 1
Розробити засоби динамічного збереження дерев та виконання дій над ними відповідно до варіанту.
Таблиця 7.1 – Варіанти індивідуальних завдань
№ |
Завдання |
1 |
Перевірити, чи двійкове дерево є збалансованим. |
2 |
Знайти вершину в дереві. |
3 |
Розробити програму для роботи з червоно-чорним деревом та процедуру пошуку в ньому. |
4 |
Розробити програму побудови бінарного дерева за арифметичним виразом (наприклад, 2+3-5+7). |
5 |
Знищити заданий елемент у бінарному дереві. |
6 |
Додати вершину впорядковане бінарне дерево. |
7 |
Додати вершину невпорядковане дерево. |
8 |
Здійснити заміну значення заданої вершини. |
9 |
Вивести на друк листки дерева. |
10 |
Вивести на друк ліві вершини дерева. |
11 |
Вивести на друк всі вершини, значення яких більше за корінь на одиницю. |
12 |
Вивести на друк праві вершини дерева. |
13 |
Вивести на друк всі вершини, значення яких більше за корінь на задану величину. |
14 |
Перевірити за допомогою дерева, чи стрічка є паліндромом (читається зліва направо та справа наліво однаково). |
15 |
Побудувати дерево синтаксичного розбору речення. |
16 |
Вивести на друк всі ліві вершини збалансованого дерева. |
17 |
Вивести на друк всі червоні вершини червоно-чорного дерева. |
18 |
Вивести на друк всі чорні вершини червоно-чорного дерева. |
19 |
Знайти в бінарному дереві вершину, сума значень прямих нащадків якої є максимальною. |
№ |
Завдання |
20 |
Знайти в бінарному дереві вершину, сума значень прямих нащадків якої є мінімальною |
Звіт повинен містити
Тема й ціль роботи
Завдання.
Хід роботи.
Код програми.
Висновок.
Практична робота № 8
Тема: Реалізація методів пошуку
Ціль роботи: набуття практичних навичок застосування алгоритмів пошуку.
Завдання
Розробити процедури та функції для пошуку в одновимірних масивах одним із методів: лінійний пошук, пошук з бар'єром, двійковий (бінарний) пошук, інтерполяційний пошук. В контрольному прикладі забезпечити пошук потрібних елементів в масивах.
Таблиця 9 – Варіанти індивідуальних завдань
№ |
Завдання |
1 |
Елементи, які наявні в обох масивах А і В. |
2 |
Елементи, які є тільки в масиві А або тільки у масиві В по одному разу. |
3 |
Елементи, які наявні в масиві А, але відсутні у масиві В. |
4 |
Елементи, які наявні в обох масивах А і В у декількох екземплярах. |
5 |
Елементи, які наявні в декількох екземплярах у масиві А, але відсутні у масиві В. |
6 |
Елементи, які наявні в декількох екземплярах або тільки у масиві А, або тільки у масиві В. |
7 |
Елементи, які наявні в декількох екземплярах або в масиві А, або в масиві В (або в обох масивах). |
8 |
Елементи масиву А, які повторюються в масиві В декілька раз. |
9 |
Елементи, наявні в обох масивах А і В в одному екземплярі. |
10 |
Елементи, наявні в одному екземплярі або тільки в масиві А, або тільки в масиві В. |
11 |
Елементи масиву А, які повторюються і одночасно є в масиві В. |
12 |
Елементи масиву А, які повторюються і одночасно є в масиві В в одному екземплярі. |
13 |
Елементи масиву А, які не повторюються і одночасно є в масиві В у декількох екземплярах. |
14 |
Елементи масиву А, які повторюються і одночасно відсутні у масиві В. |
15 |
Елементи масиву А в одному екземплярі, які є в масиві В тільки в одному екземплярі. |
№ |
Завдання |
16 |
Елементи масиву А в одному екземплярі, які є в масиві В у декількох екземплярах. |
17 |
Елементи, які наявні в декількох екземплярах або тільки в масиві А, або тільки в масиві В. |
18 |
Непарні елементи масиву А, які парні в масиві В. |
19 |
Елементи, наявні в обох масивах А і В і більші від числа К. |
20 |
Елементи, які є тільки в масиві А або в масиві В декілька разів. |
21 |
Парні елементи масиву А, наявні в масиві В. |
22 |
Неповторювані елементи масиву А, котрих немає у масиві В. |
23 |
Елементи масиву А в одному екземплярі, які наявні в масиві В. |
24 |
Елементи масиву А, наявні в одному екземплярі в масиві В. |
25 |
Елементи масиву В, які повторюються в масиві А декілька разів. |
26 |
Елементи масивів, які наявні в масиві В, але відсутні в масиві А. |
27 |
Елементи масивів, які наявні непарну кількість разів в обох масивах А і В. |
28 |
Елементи масивів, які наявні в декількох екземплярах у масиві В, але відсутні в масиві А. |
29 |
Елементи масивів, які наявні в декількох екземплярах або тільки в масиві А, або тільки в масиві В. |
30 |
Медіани масивів А і В. |
Звіт повинен містити
Тема й ціль роботи
Завдання.
Хід роботи.
Код програми.
Висновок.
Практична робота № 9
Тема: Реалізація сортування методом «бульбашки»
Ціль роботи: набуття практичних навичок застосування алгоритмів сортування.
Завдання
Розробити процедури та функції для сортування методом «бульбашки» за алфавітом (зростання) записів з практичної роботи №2. Передбачити, що поле для сортування вводить(обирає) користувач.
Звіт повинен містити
Тема й ціль роботи
Завдання.
Хід роботи.
Код програми.
Висновок.
Практична робота № 10
Тема: Реалізація сортування вибором
Ціль роботи: набуття практичних навичок застосування алгоритмів сортування.
Завдання
Розробити процедури та функції для сортування вибором за алфавітом (зростанням) записів з практичної роботи №2. Передбачити, що поле для сортування вводить(обирає) користувач.
Звіт повинен містити
Тема й ціль роботи
Завдання.
Хід роботи.
Код програми.
Висновок.
Практична робота № 11
Тема: Реалізація швидкого сортування
Ціль роботи: набуття практичних навичок застосування алгоритмів сортування.
Завдання
Розробити процедури та функції для реалізації швидкого сортування за алфавітом (зростанням) записів з практичної роботи №2. Передбачити, що поле для сортування вводить(обирає) користувач.
Звіт повинен містити
Тема й ціль роботи
Завдання.
Хід роботи.
Код програми.
Висновок.
Практична робота № 12
Тема: Реалізація сортування вставками
Ціль роботи: набуття практичних навичок застосування алгоритмів сортування.
Завдання
Розробити процедури та функції для сортування вставками за алфавітом (зростанням) записів з практичної роботи №2. Передбачити, що поле для сортування вводить(обирає) користувач.
Звіт повинен містити
Тема й ціль роботи
Завдання.
Хід роботи.
Код програми.
Висновок.
Практична робота № 13
Тема: Реалізація пірамідального сортування
Ціль роботи: набуття практичних навичок застосування алгоритмів сортування.
Завдання
Розробити процедури та функції для пірамідального сортування за алфавітом (зростанням) записів з практичної роботи №2. Передбачити, що поле для сортування вводить(обирає) користувач.
Звіт повинен містити
Тема й ціль роботи
Завдання.
Хід роботи.
Код програми.
Висновок.
ПЕРЕЛІК ЛІТЕРАТУРИ
Ахо Альфред В., Хопкрофт Джон Э., Ульман Джеффри Д. Построение и анализ вычислительных алгоритмов. - М.: Мир,1979. - 536 c.
Ахо Альфред В., Хопкрофт Джон Э., Ульман Джеффри Д. Структуры данных и алгоритмы. - М.: Издательский дом “Вильямс”, 2000. - 384 c.
Ковалев М.Я., Котов В.М.,Лепин В.В. Теория алгоритмов. Часть 2. Приближенные алгоритмы. – Мн.: БГУ, 2003. – 147 с.
Кормен Т., Лейзерсон Ч., Ривест Р.. Алгоритмы: построение и анализ. - М.: МЦНМО, 1999. - 960 с., 263 ил.
Котов В.М., Пилипчук Л.А., Соболевская Е.П. Теория алгоритмов. Ч.1. - Мн.: БГУ. 2001. - 192 с.
Котов В.М., Соболевская Е.П. Структуры данных и алгоритмы: теория и практика. - Мн.: БГУ. 2004. - 252 с.
Окулов С. М. Программирование в алгоритмах / С. М. Окулов. — М.: БИНОМ. Лаборатория знаний, 2004. — 341 с: ил.
Шаховська Н.Б., Р.О. Голощук «Алгоритми і структури даних», посібник, під редакцією д.т.н., професора В.В. Пасічника. «Магнолія 2006», Львів, 2010. – 215 с.