- •Лекція 1. Структури даних. Основні визначення та поняття
- •1.1. Термінологія
- •1.2. Типи даних
- •1.3. Рівні організації даних
- •1.4. Представлення даних
- •1.5. Класифікація структур даних
- •1.6. Основні операції над структурами даних
- •1.7. Документування даних
- •Лекція 2. Алгоритми. Складність алгоритмів.
- •2.1. Зображення алгоритмів
- •2.2. Складність алгоритмів
- •2.3. Класи алгоритмів
- •2.4. Документація алгоритмів
- •Лекція 3. Методи сортування .
- •3.1. Задача сортування
- •3.2.Метод простої вибірки.
- •3.3. Метод бульбашки.
- •3.4.Швидкий метод сортування
- •Лекція 4 методи сортування (продовження)
- •4.5. Сортування включенням
- •4.6. Сортування розподілом
- •4.7. Сортування злиттям або об’єднанням
- •4.8. Сортування підрахунком
- •Лекція 5 нелінійні структури даних
- •5.1. Дерева
- •5.1.1. Бінарні дерева
- •5.1.2. Алгоритм обходу дерева
- •5.1.3. Зображення в пам‘яті комп‘ютера графоподібних структур
- •Лекція 6 методи сортування на деревах
- •6.1. Сортування на деревах
- •6.1.2. Пірамідальне сортування.
- •Питання до першого модуля
- •Тема 1. Основні визначення та поняття. Термінологія. Класифікація структур даних. Основні операції над структурами даних.
- •Тема 2. Поняття алоритму. Зображення алгоритмів. Алгоритмічна складність. Поліноміальна та неполіноміальна складність алгоритмів..
- •Тема 3-4. Алгоритми сортування
- •Тема 5-6. Дерева. Основні визначення та поняття. Бінарні дерева. Зображення в пам‘яті еом графоподібних структур. Алгоритми обходу дерев.Висхідні, нисхідні, змішані алгоритми обходу дерев.
- •Лекція 7. Лінійні структури даних. Стеки, черги і деки.
- •7.1. Стеки
- •7.1.1. Реалізація стеку на базі масиву
- •7.2. Черги
- •7.2.1. Використання черги в програмуванні
- •7.2.2. Реалізація черги на базі масиву
- •7.3. Деки
- •Лекція 8. Лінійні структури даних.
- •8.1. Лінійні списки . Основні визначення та поняття
- •8.2. Однонаправлені списки
- •8.3. Двонаправлені списки
- •8.4. Циклічні списки
- •Лекція 9. Масиви, множини, кортежі
- •9.1. Масиви
- •9.2. Множини I кортежі
- •9.2.1. Реалізація множини
- •9.3. Зберігання множин і масивів
- •9.4. Зберігання розріджених матриць
- •Лекція 10. Нелінійні структури даних
- •10.1. Таблиці
- •10.1.1. Зображення таблиць
- •Лекція 11. Нелінійні структури даних
- •11.1. Спискові структури
- •11.1.1. Ієрархічні списки
- •11.1.2. Організація спискових структур
- •11.2. Сіткові структури
- •Лекція 12 пошук даних.
- •12.1. Послідовний пошук
- •12.2. Двійковий пошук
- •12.2.1. Дерева порівнянь на векторній пам‘яті.
- •12.3. Прямий пошук стрічки
- •12.4. Алгоритм Кнута, Моріса і Прата пошуку в стрічці.
- •12.5. Алгоритм Бойера - Мура пошуку в стрічці
- •12.6. Алгоритми з поверненням
- •Лекція 13 пошук у таблицях
- •13.1. Пошук у таблицях з обчислюваними адресами
- •13.2. Пошук у таблицях з прямим доступом
- •13.3. Пошук у Хеш-таблицях
- •Питання до другого модуля
- •Тема 9 Лінійні списки. Основні визначення та поняття. Однонаправлені списки. Двонаправлені списки. Циклічні списки. Організація списків.
- •Тема 10 Масиви. Множини I кортежі. Зберігання множин і масивів. Зберігання розріджених матриць. Операції з масивами, множинами та кортежами
11.2. Сіткові структури
Якщо у відношенні між даними породжений елемент має більше, ніж один вхідний або породжуючий елемент, то таке відношення уже не можна описати як деревоподібну або ієрархічну структуру, його описують у вигляді сіткової структура. Отже, сіткова структура це орієнтований зв‘язний граф без циклів, у якого будь-який породжений вузол може мати більше одного породжуючого вузла і, крім того, всі вузли розміщуються так, що породжені елементи розміщуються нижче породжуючих. У сітковій структурі будь-який елемент може бути пов‘язаний з будь-яким іншим елементом (рис.11.5).
Рис.11.5. Елементи сіткових структур:
а) однорідні; б) неоднорідні
Однорідна сіткова структура, що містить однотипні елементи, вироджується в дерево або список.
Неоднорідна сіткова структура, в якій зображення відношення батько-син є складним (тобто в одного батька може бути декілька синів), а зображення відношення син-батько простим (у сина може бути тільки один батько), переважно також зводиться до дерева. Сіткову структуру з таким зображенням відношень називають простою.
Якщо зображення відношень син-батько також складне, таку структуру називають складною. На рис.11.5 зображено складні сіткові структури. Існує скорочений спосіб графічного зображення складних відношень - здвоєні стрілки (рис.11.6). Прості відношення зображуються однією стрілкою і називаються зв'язком типу1:М. Відношення між записами, що відображають зв‘язки зі здвоєними стрілками в обох напрямах, прийнято називати зв‘язком типу М: N. Майже завжди у складних сіткових структурах при зв‘язках типу M:N виникають дані перетину, які породжуються з різнотипності вузлів сітки. Наприклад, у відношенні постачальник-виріб такими даними перетину є ціна.
Рис. 11.6. Приклади зображення даних перетину:
а)за допомогою файлу; б) за допомогою вказівників
В основному процесі експлуатації бази даних виникають дві складні задачі:
1) зображення даних перетину у сіткових структурах;
2) доповнення даних перетину у базу даних.
На рис. 11.6 показано два способи підтримки зв‘язків типу М: N між записами з ключами А і В з метою фіксації даних перетину: на рис. 11.6,а є файл записів Ата файл записів В і окремо інформація про зв‘язки між цими файлами; на рис.11.6,б використовується ланцюг вказівників, який з‘єднує кожний запис файлу А з відповідними йому записами файлу В. Введення в структуру даних перетину фактично руйнує зв‘язок типу M:N.
Деякі сіткові структури містять цикли. Циклом у такій схемі вважається ситуація, коли попередник вузла в той же час є його послідовником. Відношення вхідний-породжений утворюють при цьому замкнутий контур. Наприклад, завод випускав різну продукцію. Деякі виробі виготовляються на інших заводах-субпідрядниках. З одним договором може бути пов‘язано виготовлення декількох виробів. Зображення цих відношень утворює цикл (рис.11.7,а).
Деколи записи файлу зв‘язані з іншими записами цього ж файлу. Таку ситуацію називають петлею. В петлі міститься тільки один тип запису, тобто тип породженого запису зливається з типом вхідного (рис.11.7,б).

Рис.11.7. Цикли і петлі в сітках: а) цикл; б) петля
Вся сіткова структура може бути зведена до більш простого вигляду введенням надлишковості. Причому така надлишковість відноситься не до всього запису, а тільки до первинного ключа або способу його ідентифікації. Таким же чином перетворюються до деревоподібних структур і складні сітки - введенням надлишковості в ключах (рис.11.8).

Рис.11.8. Перетворення сіток до дерев:
а) звичайні сітки; б) решітки
Перетворення сітки до дерева здійснюється дублюванням вершин, в які заходить декілька ребер. Очевидно, що кількість повторень і рівень таких вершин у дереві залежить від кількості її вхідних ребер і вершин у сітці. Наприклад, на рис 11.8,а вершина 3 записана у дереві двічі на другому і третьому рівнях, тому що в початковій сітці в неї заходить два ребра - з вершин 1 і 2.
Решіткою називають частковий випадок сіткової структури, в якій граф є кореневим і вхідні вузли деякого породженого вузла належать одному і тому ж рівню. На рис.11.8,б зображено решітку. Всі ієрархічні структури, які мають спільні підструктури, являють собою решітки.
