АЛГОРИТМИ І СТРУКТУРИ ДАНИХ
МЕТОДИЧНІ ВКАЗІВКИ
до лабораторної роботи № 7
з дисципліни “Алгоритмізація та програмування, частина 2”
для студентів спеціальності 122 «Комп’ютерні науки та інформаційні технології»
Алгоритми і структури даних: Методичні вказівки до лабораторної роботи № 7 / Укл.: В.А. Висоцька, Л.В. Чирун. – Львів: Видавництво Національного університету ”Львівська політехніка”, 2017. – 13 с.
Укладачі
Висоцька В.А., канд. техн. наук, доц.
Чирун Л.В., канд. техн. наук, доц.
Відповідальний за випуск Литвин В.В., доктор техн. наук., проф.
Рецензенти Верес О.М., канд. техн. наук, доц.
Берко А.Ю., доктор техн. наук., проф.
Метою виконання лабораторної роботи є отримання студентами практичних навичок з принципів створення сучасних інформаційних технологій, основ алгоритмізації, процедурного і візуального програмування. Мета роботи: ознайомитись набуття навичок розміщення в памяті векторів і таблиць, набуття практичних навичок застосування операцій над стрічками, придбання і закріплення навиків в роботі із записами, в інтеграції даних, в модульному програмуванні, набуття навичок моделювання зв’язаних динамічних структур даних та роботи з ними, набуття практичних навичок опрацювання таких динамічних структур як звязні списки і дерева.
В результатi виконання лабораторних робіт студенти повиннi:
- знати поняття алгоритму, способи подання алгоритму, основні алгоритмічні конструкції, принципу проектування алгоритму "зверху-вниз" та покрокового уточнення алгоритму, типи даних, операції, визначені над даними різних типів.;
- вмiти застосовувати різні форми опису алгоритмів, описувати розв’язки типових навчальних задач мовами програмування, реалізовувати програми на комп’ютері, аналізувати вхідні дані і отримані результати, використовувати навчальні програми для вивчення інформатики та інших предметів.
- Вимоги до лабораторної роботи
- Кожен студент отримує набір завдань відповідно до свого порядкового номеру у списку групи або відповідно до номеру залікової книжки.
- ЗВІТ ПОВИНЕН БУТИ НАДРУКОВАНИЙ.
- Звіт про виконання роботи оформляється у вигляді завдань та розв’язку до них.
- Звіт акуратно оформляється на аркушах А4 та скріпляється скріпкою або вставляється у файлик.
- Звіт про виконання лабораторної роботи необхідно захистити у строго визначені терміни.
- Загальний принцип оформлення титульного листа лабораторної роботи:
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ "ЛЬВІВСЬКА ПОЛІТЕХНІКА" Кафедра інформаційних систем та мереж Лабораторна робота № 7 на тему АЛГОРИТМИ І СТРУКТУРИ ДАНИХ Виконав (Виконала) студент (студентка) групи KH-%%% Прізвище та ініціали студента Прийняв (Прийняла) Посада Прізвище та ініціали викладача Львів-20%% |
- Порядок роботи
- Ознайомитися iз структурою, командами та функціональними можливостями інтегрованого середовища Python чи С/C++.
- Використовуючи літературні джерела, конспект лекцій, методичні розробки з дисципліни, засвоїти теоретичний матеріал, пов’язаний з тематикою лабораторної роботи.
- Отримати індивідуальне завдання, розробити схему алгоритму для його розв’язування та написати відповідну програму на мові Python чи С/C++;
- Використовуючи вбудований редактор текстів, набрати програму на мові Python чи С/C++.
- Використовуючи засоби інтегрованого середовища мови Python чи С/C++, набрати, відредагувати та відкомпілювати текст програми;
- Вiдкомпiлювати, вiдлагодити та виконати програму.
- Ознайомитися з теоретичним матеріалом по визначенню та застосуванню директив препроцесора.
- При підготовці до лабораторної роботи згідно з індивідуальним завданням скласти програму на мові Python чи С/C++.
- Завантажити інтегроване середовище Python чи С/C++.
- Підготувати текст програми згідно завдання.
- По виданому завданню розробити програму iз застосуванням директив заміни iдентифiкатора, макросiв та умовної компiляцiї програм.
- Використовуючи вбудованi засоби інтегрованого середовища ввести та вiдлагодити програму на мові Python чи С/C++.
- Виконати програму. Якщо будуть виявлені помилки в програмі, вияснити причину помилки (використовуючи допомогу) та виправити.
- Ввести вхiднi данi та отримати результат виконання програми.
- Протестувати задачу.
- Підготувати вхідні дані для перевірки правильності виконання програми;
- Виконати програму та зафіксувати отримані результати;
Примітка. Для зменшення часу введення великих об’ємів вхідних даних при відлагодженні програми рекомендується виконати перенаправлення вводу даних з клавіатури на ввід даних з попередньо створеного текстового файлу. Перенаправлення потоків здійснюється у режимі командного рядка, наприклад: C:\Students\KH-215\Lab07.exe < MyData.txt. В результаті дані з файлу MyData.txt будуть прочитані функціями вводу програми Lab07.exe .
- Перевірити правильність роботи програми; при необхідності внести зміни у програму та виконати її повторний запуск.
- Записати текст програми на диск.
- Оформити та захистити звіт по лабораторній роботі згідно вимог. Відповісти керівнику лабораторних занять на поставлені запитання за темою лабораторної роботи;
- Проаналiзувати отриманий результат та оформити звiт по роботi, дотримуючись наступного змiсту:
¨ назва роботи;
¨ мета роботи;
¨ технологiя вводу, компiляцiї, вiдлагодження та виконання програми;
¨ завдання для роботи;
¨ блок-схема програми;
¨ програма та результати її роботи;
¨ висновки.
- Вимоги до оформлення звiту
Звiт по роботi має включати в себе наступні розділи:
- Номер та назва роботи;
- Мета виконання лабораторної роботи;
- Індивідуальне завдання для виконання роботи згідно варіанту з детальним формулюванням розв’язуваної задачі;
- Алгоритми розв’язування задачi;
- Графічна схема алгоритму розв’язування задачі з поясненням (блок-схеми програми, підпрограми та їх опис);
- Текст програми на мові Python чи С/C++. Програма повинна контролювати правильність вводу вхідних даних та мати коментарі до її основних структурних конструкцій.
- Результати комп’ютерної реалізації програми. Вказується формат і значення вхідних даних та отриманих для них результатів;
- Висновки. Вказується призначення програми, обмеження на її застосування, можливі варіанти вдосконалення та які знання отримано в ході виконання роботи.
Звіт повинен бути написаний українською мовою, акуратно та грамотно, з дотриманням правил оформлення ділової документації. Назви розділів звіту візуально виділити розміром, жирністю, курсивом шрифту або підкресленням.
- Завдання
Розв’язати завдання, подані у додатку, відповідно до свого порядкового номеру у списку групи. При оформленні лабораторної роботи дотримуватись вимог, які наведені в методичних вказівках. Оцінювання виконаної лабораторної роботи проводиться згідно кількості правильно розв’язаних завдань з відповідного варіанту. Завдання лабораторної роботи мають три рівня складності. Оцінювання виконання завдань першого рівня в п’ятибальній системі відповідає оцінці “задовільно”, другий рівень – “добре”, третій – “відмінно”. Наприклад, якщо на лабораторну виділено 5 балів, тоді 1 бал за виконання першого рівня, 1.5 балів – другого рівня, та 2.5 балів – третього рівня.
Перший рівень
Розробити спосіб економного зберігання в пам’яті розріджених матриць (таблиць). Розробити процедури і функції для забезпечення доступу (читання-запис) до елементів матриці. В контрольному прикладі забезпечити читання і запис всіх елементів матриці. Оцінити час виконання операцій.
Варіанти індивідуальних завдань
№ |
Завдання |
1 |
всі нульові елементи розміщені в лівій частині матриці |
2 |
всі нульові елементи розміщені в правій частині матриці |
3 |
всі нульові елементи розміщені вище головної діагоналі |
4 |
всі нульові елементи розміщені в верхній частині матриці |
5 |
всі нульові елементи розміщені в нижній частині матриці |
6 |
всі елементи непарних стрічок - нульові |
7 |
всі елементи парних стрічок - нульові |
8 |
всі елементи непарних стовпчиків - нульові |
9 |
всі елементи парних стовпчиків - нульові |
10 |
всі нульові елементи розміщені в шаховому порядку, починаючи з 1-го елементу 1-ї стрічки |
11 |
всі нульові елементи розміщені в шаховому порядку, починаючи з 2-го елементу 1-ї стрічки |
12 |
всі нульові елементи розміщені на місцях з парними індексами стрічок і стовпчиків |
13 |
всі нульові елементи розміщені на місцях з непарними індексами стрічок і стовпчиків |
14 |
всі нульові елементи розміщені вище головної діагоналі на непарних стрічках і нижче головної діагоналі - на парних |
15 |
всі нульові елементи розміщені нижче головної діагоналі на непарних стрічках і вище головної діагоналі - на парних |
16 |
всі нульові елементи розміщені на головній діагоналі, в перших 3 стрічках вище діагоналі і в останніх 2 стрічках нижче діагоналі |
17 |
всі нульові елементи розміщені на головній діагоналі і в верхній половині області вище діагоналі |
18 |
всі нульові елементи розміщені на головній діагоналі і в нижній половині області нижче діагоналі |
19 |
всі нульові елементи розміщені на стрічках, індекси яких кратні 3 |
20 |
матриця розділена діагоналями на 4 трикутника, елементи верхнього і нижнього трикутників нульові |
21 |
нульові елементи розміщені в верхній и нижній четвертях матриці |
22 |
нульові елементи розміщені в лівій и правій четвертях матриці |
23 |
нульові елементи розміщені в лівій и верхній четвертях матриці |
24 |
нульові елементи розміщені на стрічках, індекси яких кратні 3 |
25 |
нульові елементи розміщені на стовпчиках, індекси яких кратні 3 |
26 |
нульові елементи розміщені в верхній третині стрічок і середній третині стовпчиків |
27 |
нульові елементи розміщені в верхній третині стрічок, першій і третій третині стовпчиків |
28 |
нульові елементи розміщені в верхньому і нижньому трикутнику, за умови розділення матриці діагоналями на 4 трикутника |
29 |
нульові елементи розміщені в лівому і правому трикутнику, за умови розділення матриці діагоналями на 4 трикутника |
30 |
нульові елементи розміщені на головній діагоналі і в нижній половині матриці нижче діагоналі, індекси яких кратні 3 |
Другий рівень
1. Розробити процедури та функції які забезпечують виконання операції вказаних в завданні.
В контрольному прикладі передбачити всі можливі комбінації вхідних параметрів (нульова довжина, вихід за межі стрічки і т.п.), в тому числі і неправильні.
Варіанти індивідуальних завдань.
№ |
Функція |
Завдання |
1 |
Copies(s,s1,n) |
копіювання стрічки s в стріку s1 n раз |
2 |
Words(s) |
подрахунок кількості слів в стрчці s |
3 |
Parse(s,c) |
разбиття стрічки s на дві частини: до першого вхождення символу c і після |
4 |
Center(s1,s2) |
центрування - розміщення стрічки s1 в середині стрічки s2 |
5 |
Left(s,m) |
вирівнювання стрічки s зліва до довжини m |
6 |
Right(s,m) |
вирівнювання стрічки s зправа до довжини m |
7 |
Reverse(s) |
Реверсування стрічки s |
8 |
LastPos(s,s1) |
пошук останньго вхождення підстрічки s1 в стрічку s |
9 |
WordIndex(s,n) |
Визначення позиції початку в стрічці s слова з номером n |
10 |
WordLength(s,n) |
Визначення довжини слова з номером n |
11 |
WordCmp(s1,s2) |
Порівняння стрічок (з ігноруванням множинних пробілів). |
12 |
StrSpn(s,s1) |
знахождення довжини тої частини стрічки s, яка містить тільки символи з стрічки s1 |
13 |
Overlay(s,s1,n) |
перекриття частини стрічки s, починаючи з позиції n стрічкою s1 |
14 |
StrLength(s) |
визначити кількість символів в стрічці s не враховуючи пробіли |
15 |
StrCChar(s,c1,s2, n) |
замінити всі символи с1 в стрічці s починаючи з позиції n на стрічку s2 |
16 |
StrLB(s,n) |
замінити в стрічці s, починаючи з позиції n, всі малі букви на великі |
17 |
StrDel(s,n,k) |
видалити з стрічки s підстрічку, начинаючи з позиції n довжиною к |
18 |
StrAdd(s,s1,n) |
вставити в стрічку s підстрічку s1, починаючи з позиції n |
19 |
StrLWord(s,k) |
Визначити кількість слів довжиною к символів в стрічці s |
20 |
DelBlank(s) |
видалити в стрічці s головні, хвостові і множинні пробіли |
21 |
Split(s,s1,s2, с) |
Розбити стрічку s на дві стрічки s1 і s2, в одній всі символи менші с, в іншій відповідно більші |
22 |
StrBL(s,n) |
замінити в стрічці s, починаючи з позиції n, всі великі букви на малі |
23 |
NumCount(s) |
Порахувати кількість цифр в стрічці s |
24 |
NumCut(s) |
Вирізати всі цифри зі стрічки s |
2. Для заданої прикладної області розробити опис об'єктів цієї області. Розробити процедури, що реалізують базові операції над цими об'єктами, зокрема:
- текстове введення-виведення (консольний і файловий);
- присвоювання;
- задання константних значень;
- порівняння (не менше 2-х типів).
Підготувати файл початкових даних, що містять не менше 10 значень конкретних об'єктів. Використовуючи процедури і описи модуля типу даних, розробити програму, що забезпечує введення початкових даних з першого файлу даних в пам'ять і зберігання їх в масиві, сортування масиву по алфавітному і по числовому параметру.
Варіанти індивідуальних завдань
Для кожної області перераховані параметри об'єкту. Серед параметрів обов'язково є ключове алфавітне поле (наприклад, прізвище), яке ідентифікує об'єкт, у кожного об'єкту є також одне або декілька числових полів, по яким вірогідні звернення до об'єкту. Набір характеристик може бути розширений і ускладнений по розсуду виконавця.
№ |
Прикладна область |
Атрибути інформації |
1 |
Відділ кадрів |
прізвище співробітника, ім'я, по батькові, посада, стаж роботи, оклад |
2 |
Червона книга |
вид тварини, рід, сімейство, житло, чисельність популяції |
3 |
Виробництво |
позначення виробу, група до якої воно відноситься, рік випуску, об'єм випуску, витрату металу |
4 |
Персональні ЕОМ |
фірма-виробник, тип процесора, тактова частота, місткість ОЗП, місткість жорсткого диска |
5 |
Бібліотека |
автор книги, назва, рік видання, код УДК, ціна, кількість в бібліотеці |
6 |
Супутники планет |
назва, назва планети-господаря, рік відкриття, діаметр, період обігу |
7 |
Радіодеталі |
позначення, тип, номінал, кількість на схемі, позначення можливого замінника |
8 |
Текстові редактори |
найменування, фірма-виробник, кількість вікон, кількість шрифтів, вартість |
9 |
Телефонна станція |
номер абонента, прізвище, адреса, наявність того, що блокує, заборгованість |
10 |
Побут студентів |
прізвище студента, ім'я, по батькові, факультет, розмір стипендії, число членів сім'ї |
11 |
Спортивні змагання |
прізвище спортсмена, ім'я, команда, вид спорту, заліковий результат, штрафні очки |
12 |
Змагання факультетів по успішності |
факультет, кількість студентів, середній бал по факультету, кількість відмінників, кількість двієчників |
13 |
С/г роботи |
прізвище студента, ім'я, по батькові, факультет, вид робіт, заробіток |
14 |
Сільське господарство |
найменування с/г підприємства, вид власності, кількість тих, що працюють, основний вид продукції, прибуток |
15 |
Відомості про сім'ю |
прізвище студента, ім'я, по батькові, факультет, спеціальність батька, спеціальність матері, кількість братів і сестер |
16 |
Скотарство |
вид тварин, кількість особин в стаді у віці до 1 року, кількість особин 1 - 3 років, понад 3 роки, смертність в кожній групі, народжуваність |
17 |
Мікросхеми пам'яті |
позначення, розрядність, місткість, час доступу, кількість на схемі, вартість |
18 |
Опис зображення |
тип фігури (квадрат, коло і т.п.), координати на площини, числові характеристики |
19 |
Лісове господарство |
найменування зеленого масиву, площа, основна порода, середній вік, густина дерев на кв.км |
20 |
Міський транспорт |
вид транспорту, номер маршруту, початкова зупинка, кінцева зупинка, час в дорозі |
Третій рівень
1. Розробити підпрограми, які забезпечують запити на запис або читання даних з черги, стека або дека. Для організації вказаних структур використовувати масиви або списки. Перевірити працездатність розроблених підпрограм. Послідовність виконання операцій запису або читання вибираються випадково. Порівняти результати роботи, зробити висновки.
Варіанти індивідуальних завдань.
№ |
Завдання |
1 |
Розробити підпрограми роботи пріоритетною чергою. Постановка запитів в чергу виконується по пріоритету, зняття - з молодших адрес ( засади черги). Черга організована на масиві із зсувом після кожного читання, і на масиві із зсувом після досягнення межі пам'яті, яка виділена для черги. Пріоритет: мin значення числового параметра, при збігу параметрів - LIFO |
2 |
Розробити підпрограми роботи з Деком. Дек організований на масиві з циклічним заповненням і з використанням двонаправленого списку. Операції виконуються з обох кінців Дека |
3 |
Розробити підпрограми роботи з пріоритетною чергою. Постановка запитів в чергу виконується підряд в кінець черги, зняття - по пріоритету. Черга організована на масиві або списку. Пріоритет: мin значення числового параметра, при збігу параметрів - LIFO |
4 |
Розробити підпрограми роботи із стеком. Стек організований на масиві з використанням двонаправленого списку |
5 |
Розробити підпрограми роботи з Деком. Дек організований на масиві з циклічним заповненням і з використанням двонаправленого списку. Операції виконуються з різних кінців Дека |
6 |
Розробити підпрограми роботи з пріоритетною чергою. Встановлення запитів в чергу виконується по пріоритету, зняття - з молодших адрес (початок черги). Черга організована на масиві з циклічним заповненням і із зрушенням. Пріоритет: мах значення числового параметра, при збігу параметрів - FIFO |
7 |
Розробити підпрограми роботи з пріоритетною чергою. Встановлення запитів в чергу виконується по пріоритету, зняття - зі старших адрес (кінець черги). Черга організована на масиві або на списку. Пріоритет: мах значення числового параметра, при збігу параметрів - FIFO |
8 |
Розробити підпрограми роботи з деком. Дек організований на масиві з циклічним заповненням і із зрушенням. Операції виконуються з обох кінців Дека. |
9 |
Розробити підпрограми роботи з пріоритетною чергою. Встановлення запитів в чергу виконується по пріоритету, зняття - з молодших адрес (початок черги). Черга організована на масиві з циклічним заповненням і списку. Пріоритет: мах значення числового параметра, при збігу параметрів - FIFO. |
10 |
Розробити підпрограми роботи з деком. Дек організований на масиві з циклічним заповненням і із зрушенням. Операції виконуються з різних кінців Дека |
11 |
Розробити підпрограми роботи з пріоритетною чергою. Встановлення запитів в чергу виконується по пріоритету, зняття - з молодших адрес (початок черги). Черга організована на масиві із зрушенням після кожного читання і на масиві із зрушенням після досягнення межі пам'яті, яка виділена для черги. Пріоритет: мах значення числового параметра, при збігу параметрів - FIFO. |
12 |
Розробити підпрограми роботи з пріоритетною чергою. Встановлення запитів в чергу виконується по пріоритету, зняття - з молодших адрес (початок черги). Черга організована на масиві з циклічним заповненням і із зрушенням. Пріоритет: мin значення числового параметра, при збігу параметрів - LIFO. |
13 |
Розробити підпрограми роботи з пріоритетною чергою. Встановлення запитів в чергу виконується по пріоритету, зняття - зі старших адрес (кінець черги). Черга організована на масиві і на списку. Пріоритет: мin значення числового параметра, при збігу параметрів - LIFO. |
14 |
Розробити підпрограми роботи з пріоритетною чергою. Встановлення запитів в чергу виконується по пріоритету, зняття - з молодших адрес (початок черги). Черга організована на масиві з циклічним заповненням і списку. Пріоритет: мin значення числового параметра, при збігу параметрів - LIFO. |
15 |
Розробити підпрограми роботи з пріоритетною чергою. Встановлення запитів в чергу виконується підряд в кінець черги, зняття - по пріоритету . Черга організована на масиві і списку. Пріоритет: мах значення числового параметра, при збігу параметрів - FIFO |
16 |
Розробити процедуру хешування масива записів, в який передбачається часте додавання даних. |
2. Розробити програми які виконують операції вказані в індивідуальному завданні.
- Програму для роботи з двонаправленими зв’язними списками. Кожен елемент списку містить посилання на наступний і попередній елемент в списку. Програма повинна забезпечувати ввід і побудову списку.
- Програму для роботи для роботи з деревами. Кожен елемент дерева містить посилання на батьківський елемент і посилання на елементи-нащадки (необмежена кількість). Програма повинна забезпечувати ввід і побудову дерева.
- Кожен елемент списку містить інформаційне поле(атрибут) деякого простого типу: символ, стрічка, число.
- Всі операції над динамічними структурами повинні супроводжуватись відповідним виводом на екран.
- В контрольних прикладах забезпечити опрацювання структур з 10-20 елементами.
Варіанти індивідуальних завдань.
№ |
Двонапаравлений звязний список |
Дерево |
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 |
Видалення зі списку повторень. |
Визначення всіх «листків» дерева. |
- Література
- Троценко В.С., Чаленко П.Й., Старовський А.Б. Техніка програмування мовою Сі. К.:Либідь,1993.
- Абрамов С.А. и др. Задачи по программированию. — М.: Наука, 1988.
- Ван Тассел Д. Стиль, разработка, эффективность, отладка и испытание программ. — М.: Мир, 1981.
- Дейкстра Э. Дисциплина программирования. М.: Мир, 1978.
- Лэгсам Й, Огенстайн М. Структуры данных для персональных ЭВМ — М: Мир, 1989 -586с.
(Для ознайомлення з повним текстом статті необхідно залогінитись)