- •Зміст дисципліни.
- •Найменування тем, їхній зміст, обсяг у годинах лекційних занять
- •Вказівки з використанНя літературних джерел
- •Алгоритми й структури даних
- •Стеки, списки
- •Дерева пошуку Бінарні дерева
- •Двійкові дерева
- •Червоно- чорні дерева
- •Частково впорядковані дерева Статья I.При створенні чуд елементи вводилися в наступному порядку: (13, 6, 15, 5, 10, 6, 3, 13, 5, 6, 35, 8). Пояснити побудова (переформування) дерева.
- •Рекурсія
- •Перебір з поверненням
- •Машина Тьюрінга
- •Приклади Послідовний пошук
- •Структури даних. Масиви Решето Ератосфена
- •Обчислення найближчої точки
- •Структури даних. Списки Приклад циклічного списку (задача Йосипа)
- •Сортування методом вставки в список
- •Звертання порядку проходження елементів списку
- •Структури даних. Рядки Сортування масиву рядків
- •Абстрактні типи даних (атд) Інтерфейс абстрактного типу даних стека
- •Реалізація черги fifo на базі масиву
- •Реалізація черги fifo на базі зв'язного списку
- •Перетворення з інфіксної форми в постфіксну
- •Рекурсія Алгоритм Евклида
- •Рекурсивна програма для оцінки префіксних виразів
- •Розв’язання
- •Приклад 2 Завдання
- •Розв’язання
- •Приклад 3 Завдання
- •Розв’язання
- •Приклад 4 Завдання
- •Розв’язання
- •Приклад 5 Завдання
- •Розв’язання
- •Приклад 6 Завдання
- •Розв’язання
- •Приклад 7 Завдання
- •Розв’язання
- •Алгоритм роботи машини т’юринга
- •Дослідження функції на рекурсивність
- •Нормальні алгоритми Маркова
- •Алгоритм роботи програми.
- •Приклад роботи програми.
- •Варіанти курсових робіт
- •Варіанти виконання Алгоритм виконання курсової роботи:
- •Приклад1.
- •Побудова моделі.
- •Розроблення алгоритму.
- •Правильність алгоритму.
- •Реалізація алгоритму.
- •Перевірка програми.
- •Приклад2
- •Постановка задачі
- •Перший варіант розв’язку
- •Другий варіант розв’язку.
- •Приклад3
- •Опукла оболонка
- •Метод обходу Грехема
- •Метод обходу Джарвіса
- •Алгоритм апроксимації опуклої оболонки
- •Швидкі методи побудови опуклої оболонки
- •Алгоритм типу розділяй та пануй
- •Побудова опуклої оболонки простого многокутника
- •Динамічні алгоритми побудови опуклої оболонки
- •Порівняльний аналіз алгоритмів побудови опуклої оболонки
- •Висновки
Червоно- чорні дерева
Намалюйте повне двійкове дерево пошуку висоти 3 із ключами {1, 2,...,15}. Додайте NIL-листи й пофарбуйте вершини трьома способами так, щоб червоно-чорні дерева, що вийшли, малі чорну висоту 2, 3 й 4.
Припустимо, що корінь червоно-чорного дерева червоний. Якщо мі пофарбуємо його в чорний колір, чи зостанеться дерево червоно-чорним?
Покажіть, що самий довгий шлях униз від вершини х до аркуша не більш ніж удвічі довше самого короткого такого шляху.
Яка найбільша й найменша кількість внутрішніх вершин може бути в червоно-чорному дереві чорної висоти k?
Намалюйте червоно-чорні дерева, які виходять при послідовному додаванні до порожнього дерева ключів 41,38,31,12,19,8.
= V/D2 = V/(L^)2
№ |
Вид дерева |
Спосіб реалізації |
Досліджувана підзадача |
Параметри аналізу |
Критерій зміни параметра |
|
|
2-3 дерево |
«Масив курсорів на батька» |
Додавання нового вузла (значення в дерево), якщо такого не втримується |
N, V, V*, N^, L, L^, E, E’, , I |
Наблизити L до 1 |
|
|
2-3 дерево |
Список синів, |
Додавання нового вузла (значення в дерево), якщо такого не втримується |
N, V, V*, N^, L, L^, E, E’, , I |
L^ збільшити не менш чим на 20% |
|
|
2-3 дерево |
Лівий син, правий брат |
Додавання нового вузла (значення в дерево), якщо такого не втримується |
N, V, V*, N^, L, L^, E, E’, , I |
E збільшити не менш чим на 25% |
|
|
2-3 дерево |
Покажчики на сини |
Додавання нового вузла (значення в дерево), якщо такого не втримується |
N, V, V*, N^, L, L^, E, E’, , I |
E’ зменшити не менш чим на 20% |
|
|
3-5 дерево |
«Масив курсорів на батька» |
Додавання нового вузла (значення в дерево), якщо такого не втримується |
N, V, V*, N^, L, L^, E, E’, , I |
збільшити не менш чим на 35% |
|
|
3-5 дерево |
Список синів, |
Додавання нового вузла (значення в дерево), якщо такого не втримується |
N, V, V*, N^, L, L^, E, E’, , I |
I зменшити не менш чим на 35% |
|
|
3-5 дерево |
Лівий син, правий брат |
Додавання нового вузла (значення в дерево), якщо такого не втримується |
N, V, V*, N^, L, L^, E, E’, , I |
Забезпечити відхилення N^ від N не більше 10% (20%) |
|
|
3-5 дерево |
Покажчики на сини |
Додавання нового вузла (значення в дерево), якщо такого не втримується |
N, V, V*, N^, L, L^, E, E’, , I |
Наблизити L до 1 на 10% |
|
|
2-3 дерево |
«Масив курсорів на батька» |
Видалення вузла, що містить уведене значення (якщо воно є у вузлі дерева) |
N, V, V*, N^, L, L^, E, E’, , I |
E збільшити у два рази (10%) |
|
|
2-3 дерево |
Список синів, |
Видалення вузла, що містить уведене значення (якщо воно є у вузлі дерева) |
N, V, V*, N^, L, L^, E, E’, , I |
E’ зменшити у два рази (10%) |
|
|
2-3 дерево |
Лівий син, правий брат |
Видалення вузла, що містить уведене значення (якщо воно є у вузлі дерева) |
N, V, V*, N^, L, L^, E, E’, , I |
зменшити у два рази (10%) |
|
|
2-3 дерево |
Покажчики на сини |
Видалення вузла, що містить уведене значення (якщо воно є у вузлі дерева) |
N, V, V*, N^, L, L^, E, E’, , I |
I збільшити у два рази (10%) |
|
|
3-5 дерево |
«Масив курсорів на батька» |
Видалення вузла, що містить уведене значення (якщо воно є у вузлі дерева) |
N, V, V*, N^, L, L^, E, E’, , I |
Забезпечити відхилення N^ від N не більше 10% (20%) |
|
|
3-5 дерево |
Список синів, |
Видалення вузла, що містить уведене значення (якщо воно є у вузлі дерева) |
N, V, V*, N^, L, L^, E, E’, , I |
Забезпечити відхилення N^ від N не більше 10% (20%) |
|
|
3-5 дерево |
Лівий син, правий брат |
Видалення вузла, що містить уведене значення (якщо воно є у вузлі дерева) |
N, V, V*, N^, L, L^, E, E’, , I |
Забезпечити відхилення N^ від N не більше 10% (20%) |
|
|
3-5 дерево |
Покажчики на сини |
Видалення вузла, що містить уведене значення (якщо воно є у вузлі дерева) |
N, V, V*, N^, L, L^, E, E’, , I |
Забезпечити відхилення N^ від N не більше 10% (20%) |
* Розглянемо червоно-чорне дерево, отримане додаванням п вершин до порожнього дерева. Переконайтесь, що при n > 1 у дереві є хоча б одна червона вершина.
* Припустимо, що вершина вставлена в червоно-чорне дерево, а потім відразу ж вилучена. Чи буде дерево, що вийшло, збігатися з вихідним? Чому?
* Опишіть червоно-чорне дерево, що містить п ключів, з найбільшим можливим відношенням числа червоних внутрішніх вершин до числа чорних внутрішніх вершин. Чому дорівнює це відношення? Для якого дерева це відношення буде найменшим, і чому дорівнює це відношення?
п Напишіть процедуру Right-Rotate
п Як ефективно реалізувати процедуру RB-Insert, якщо у вершинах не зберігаються вказівники на батьків?
п Переконайтесь, що після виконання процедури RB-Delete корінь дерева залишається чорним, якщо він таким був
п У яких рядках процедури RB-Delete-Fixup мі можемо читати або змінювати фіктивний елемент nil[T]?
. п Спростіть процедуру Left-Rotate, використовуючи фіктивний елемент для подання nil та ще один фіктивний елемент, що містить вказівник на корінь дерева.
