
- •Міністерство освіти і науки, молоді та спорту України
- •Державний вищий навчальний заклад
- •“Калуський політехнічний коледж”
- •Методичні вказівки
- •До виконання лабораторних робіт
- •З дисципліни «Програмне забезпечення ііс»
- •Калуш – 2011
- •Мета виконання лабораторних робіт
- •Порядок виконання лабораторних робіт
- •Примірні інструкції до виконання лабораторних робіт
- •Теоретичні відомості
- •Індивідуальне завдання
- •Варіанти індивідуальних завдань
- •Контрольні питання
- •Теоретичні відомості
- •Індивідуальне завдання
- •Теоретичні відомості
- •Індивідуальне завдання
- •Варіанти індивідуальних завдань
- •Контрольні питання
- •Теоретичні відомості
- •Індивідуальне завдання
- •Варіанти індивідуальних завдань
- •Контрольні питання
- •Теоретичні відомості
- •Індивідуальне завдання
- •Контрольні питання
Контрольні питання
-
У чому полягає метод «поділяй і пануй»?
-
Що таке список? Наведіть приклад.
-
У чому полягає дуже важлива властивість списку?
-
Обгрунтуйте поняття порожнього списку.
-
Що таке довжина списку?
-
Який список є типовим для системи зберігання списку у вигляді масиву?
-
Які структури даних можна використовувати для представлення списків?
-
Опишіть принцип реалізації списків за допомогою масивів.
-
Що таке покажчик? Наведіть приклад.
-
Поясніть, у чому полягає особливість реалізації списків за допомогою покажчиків?
-
В яких ситуаціях краще використовувати реалізацію списків за допомогою покажчиків, а в яких ― реалізацію списків за допомогою масивів?
-
Дайте визначення зв’язаного списку.
-
Намалюйте структуру зв’язаного списку.
-
Яким чином можна видалити ім’я із списку.
-
Поясніть операцію включення нового елементу в список.
-
Як здійснюється підтримка концептуального списку? Наведіть приклад.
-
Якщо вам відомий адрес першого елементу неперервного списку, то як взнати адрес п’ятого елементу? Що потрібно робити у випадку зв’язаного списку?
-
Яка умова показує, що зв’язаний список порожній?
-
Яким чином можна реалізувати двічі зв’язаний список?
-
Опишіть переваги використання двічі зв’язаних списків.
Лабораторна робота № 5
Тема: Побудова остового дерева мінімальної вартості для поміченого графа за
алгоритмом Пріма.
Мета: Навчитись будувати остове дерево мінімальної вартості для поміченого
графа, використовуючи алгоритм Пріма.
Теоретичні відомості
Нехай маємо зв’язаний граф G=(V,E) з множиною вершин V={1, 2, .., n} і функцією вартості с, визначеній на множині ребер Е. В алгоритмі Пріма (Primm) побудова остового дерева мінімальної вартості для графа G починається з графа Т = (V, Ø), який складається тільки з n вершин графа G і не має ребер. Таким чином, кожна вершина є зв’язаною (сама із собою) компонентою. В процесі виконання алгоритму ми маємо набір зв’язаних компонент, поступово об’єднуючи деякі формуємо остове дерево.
При побудові зв’язаних, поступово зростаючих компонентів почергово перевіряються ребра з множини Е в порядку зростання їхньої вартості. Якщо чергове ребро зв’язує дві вершини з різних компонентів, тоді воно додається в граф Т. Якщо це ребро зв’язує дві вершини з однієї компоненти, тоді воно відкидається, так як його додавання в зв’язану компоненту, що є вільним деревом, веде до утворення циклу. Коли всі вершини графу G будуть належати одній компоненті, побудова остового дерева мінімальної вартості Т для цього графа закінчується.
Цей алгоритм можна реалізувати, використовуючи множини ( для вершин та ребер) і оператори. Перш за все, необхідна множина ребер Е, до якої можна було б послідовно застосовувати послідовно оператор DELETEMIN для відбору ребер в порядку зростання їхньої вартості. Тому множину ребер доцільно представити у вигляді черги з пріоритетами і використовувати для неї частково впорядковане дерево в якості структури даних. Необхідно також підтримувати набір С зв’язаних компонент, для чого можна використовувати наступні оператори:
-
Оператор MERGE(A,B,C) об’єднує компоненти А і В з набору С і результат об’єднання розміщує або в А, або у В.
-
Функція FIND(υ,C) повертає ім’я тої компоненти з набору С, яка містить вершину υ.
-
Оператор INITIAL(A,υ,C) створює у наборі С нову компоненту з іменем А, яка містить тільки одну вершину υ.
В будь-якому випадку алгоритм Пріма може бути виконаний за час О(е loge).