
- •Питання до другого модуля
- •Тема 9 Лінійні списки. Основні визначення та поняття. Однонаправлені списки. Двонаправлені списки. Циклічні списки. Організація списків.
- •Тема 10 Масиви. Множини I кортежі. Зберігання множин і масивів. Зберігання розріджених матриць. Операції з масивами, множинами та кортежами
- •Тема 11 Нелінійні структури даних. Класифікація нелінійних структур даних. Таблиці. Зображення таблиць. Основні операції з таблицями.
- •Тема 12. Спискові структури. Основні поняття. Ієрархічні списки. Сіткові структурі. Організація спискових структур.
- •Тема 13. Пошук даних. Послідовний пошук. Двійковий пошук. Алгоритм Кнута, Моріса, Пратта. Алгоритм Бойера-Мурра. Порівняння алгоритмічної складності методів
- •Тема 14. Дерева порівнянь на векторній пам‘яті. Дерева порівнянь на зчепленій пам‘яті. Пошук у таблицях з обчислюваними адресами. Таблиці з прямим доступом. Хеш-таблиці. Задача колізії.
- •Пошук у Хеш-таблицях.
Тема 12. Спискові структури. Основні поняття. Ієрархічні списки. Сіткові структурі. Організація спискових структур.
Рівень І
-
Сіткова структура це …
Сіткова структура це орієнтований зв‘язний граф без циклів, у якого будь-який породжений вузол може мати більше одного породжуючого вузла і, крім того, всі вузли розміщуються так, що породжені елементи розміщуються нижче породжуючих.
-
Петля у сітковій структурі це…
Деколи записи файлу зв‘язані з іншими записами цього ж файлу. Таку ситуацію називають петлею. (мал. Б)
-
Цикл у сітковій структурі.
Циклом у такій схемі вважається ситуація, коли попередник вузла в той же час є його послідовником. (мал. А)
-
Решітка це…
Решіткою називають частковий випадок сіткової структури, в якій граф є кореневим і вхідні вузли деякого породженого вузла належать одному і тому ж рівню. (мал. Б)
-
Як поділяються сіткові структури за типом елементів?
Однорідна сіткова структура, що містить однотипні елементи, вироджується в дерево або список.
Неоднорідна сіткова структура, в якій зображення відношення батько-син є складним (тобто в одного батька може бути декілька синів), а зображення відношення син-батько простим (у сина може бути тільки один батько), переважно також зводиться до дерева. Сіткову структуру з таким зображенням відношень називають простою.
Рис.1. Елементи сіткових структур:
а - однорідні; б – неоднорідні
Тема 13. Пошук даних. Послідовний пошук. Двійковий пошук. Алгоритм Кнута, Моріса, Пратта. Алгоритм Бойера-Мурра. Порівняння алгоритмічної складності методів
Рівень ІІІ
-
Алгоритм послідовного або лінійного пошуку. Складність алгоритму – О(n2)
-
Алгоритм двійкового пошуку. Складність алгоритму – O(lg(n))
-
Алгоритм прямого пошуку стрічки. Складність алгоритму – О(n*m) , де m – довжина «де шукаємо» (текст), а n – «що шукаємо» (паттерн, взірець).
-
Алгоритм Кнута, Моріса і Прата пошуку в стрічці. Складність алгоритму – О(m+n), де m – довжина «де шукаємо» (текст), а n – «що шукаємо» (паттерн, взірець).
-
Алгоритм Бойера – Мура пошуку у стрічці. Складність алгоритму – О(n)
-
Алгоритми з поверненням:
Методом проб та помилок вибирається деякий ланцюжок висновків. У випадку невдач організовується перебір з поверненням для пошуку іншого ланцюжка. Для організації пошуку правильного ланцюжка використовується дерево пошуку. Зростання такого дерева часто буває експоненціальним. Прикладами таких задач є «Задача про 8 ферзів», «Задача виходу з лабіринту», «Задача про хід коня», «Задача про стабільні браки», «Задача оптимального вибору».
Тема 14. Дерева порівнянь на векторній пам‘яті. Дерева порівнянь на зчепленій пам‘яті. Пошук у таблицях з обчислюваними адресами. Таблиці з прямим доступом. Хеш-таблиці. Задача колізії.
Рівень І
-
Функція хешування це…
Функції, що відображають ім‘я або ключ у деяке ціле число, називають функціями хешування h(k) для ключа k. Їх також називають функціями перемішування або рандомізації.
-
Колізія це…
Функції, що відображають ім‘я або ключ у деяке ціле число, називають функціями хешування h(k) для ключа k. Їх також називають функціями перемішування або рандомізації.
Ситуацію, при якій h(ki)= h(kj) при ki!= kj, називають колізією.
-
Дерева порівнянь на векторній пам‘яті.
-
Дерева порівнянь на зчепленій пам‘яті.
Рівень ІІ
-
Алгоритм пошуку у таблицях з обчислюваними адресами.
Розглянемо метод, у якому тривалість пошуку буде незалежною від числа записів у таблиці. Для цього таблиці треба організовувати так, щоб місцезнаходження її елементів визначалося за допомогою обчислюваної адреси. Це так звані таблиці з обчислюваними адресами. Загальна ідея організації таких таблиць полягає у тому, щоб використовувати ключ безпосередньо в ролі адреси або визначати адресу за допомогою функції від ключа і запам‘ятовувати запис за цією адресою.
-
Алгоритм пошуку у таблиці з прямим доступом.
Таблицю називають таблицею з прямим або безпосереднім доступом, якщо для визначення місцезнаходження кожного запису використовується його ключ. Функція хешування визначається як відображення К->A , де К- множина ключів, які можуть ідентифікувати записи в таблиці з прямим доступом; А - множина адрес. Доступ до запису за ключем k здійснюється в такому випадку за значенням функції h(k).