Lab_07
.pdf
Рис. 16.Приклад вставляння елемента „зверху-вниз”
Рис. 16. Операції вставляння у 4-ний вузол
Приклад 4. Вставимо елемент 70 в дерево на рис.11? Спершу розщепимо 4-ний вузол на два подвійних і передамо їхній середній вузол з його батьку. Так вузол містить 80, 90 і 140 ділиться на два подвійних (один містить 80, інший містить 140) і його центральний ключ 90 передається в 3- ний вузол, що містить 50 і 180, перетворюючи його на 4-ной вузол. Після цього у нас звільняється місце для 70 у вузлі, що містить 80.
Рис. 17. Результат вставляння елемента 70 у дерево з рис.11.
Рис. 18 Вставленння елемента з ключем 50 у дерево рис. 17
Операція "розщеплювання" працює завдяки тому, що ми пересуваємо не тільки ключі, але і вказівники. Так 2 подвійних вузла мають ту ж кількість вказівників (чотири), що і один 4-ний вузол, завдяки чому розщеплювання можна виконати не змінюючи того, що знаходиться нижче за вузол розщеплювання. Потрійний вузол не може бути перетворений в четверний простим додаванням в нього ключа: нам необхідно буде також додати і вказівник (у цьому випадку цей вказівник забезпечується з розщеплюваного вузла). Критична точка цього методу - це те, що всі трансформації чисто "локальні": не потрібно перевіряти або змінювати жодні частини дерева окрім тих, які зображені на рисунку. Кожна з таких трансформацій передає вгору один з ключів 4-ного вузла його батьку по дереву і переставляє вказівники. Не потрібно хвилюватися, що батько вузла виявиться 4-ним вузлом оскільки трансформація гарантує, що будь-який вузол в який ми прийшли є не 4-ним. Зокрема, коли ми досягнемо дна дерева, ми матимемо справу в 2-ними або 3-ними вузлами, і тому можемо вставляти в них безпосередньо. Як тільки корінь дерева стає 4-ним вузлом, ми ділимо його. Це призводить до того, що наше дерево "підростає" на один рівень. Тільки перетворення кореня дерева на 4-ний вузол може примусити дерево підрости на один рівень.
3. КОНТРОЛЬНІ ЗАПИТАННЯ
1.Яка структура називається 2-3 деревом?
2.Де розташовуються данi у 2-3 деревi?
3.Як здiйснюється вставляння нового елемента у 2-3 дерево?
4.Як здiйснюється видалення з 2-3 дерева?
5.Яка структура називається 2-4 деревом?
6.Де розташовуються данi у 2-4 деревi?
7.Як здiйснюється вставляння нового елемента у 2-4 дерево?
8.Як здiйснюється видалення з 2-4 дерева?
4.ЛАБОРАТОРНЕ ЗАВДАННЯ
1.Ознайомитись з операціями роботи із 2-3 т 2-3-4 деревами.
2.Одержати індивідуальне завдання (див. Варіанти індивідуальних завдань).
3.Скласти блок-схему алгоритму та програму, яка дозволяє із використанням динамічних об’єктів реалізувати розв’язок поставленої задачі.
4.Виконати програму.
5.ЗМІСТ ЗВІТУ
1.Мета роботи.
2.Теоретичний аналіз опрацьованого матеріалу.
3.Відповіді на контрольні запитання.
4.Індивідуальне завдання, отримане у викладача.
5.Аналіз отриманих результатів і висновки.
6.Список використаної літератури.
СПИСОК ЛІТЕРАТУРИ
1.Кормен Т., Лейзерсон Ч., Ривест Р. Алгоритмы: построение и анализ. - М.:
МЦНМО, 1990. - 960 с.
2.Перевозчикова О.Л. Інформаційні системи та структури даних. – К.: Видавничий дім “КМ-Академія”, 2004. – 149 с.
3.Ахо А., Хопкрофт Д., Ульман О. Построение и анализ вычислительных алгоритмов. - М.: Наука, 1989. - 360 с.
4.Вирт Н. Алгоритмы + структуры данных = программы. - М.: Мир, 1985. - 406c.
5.Вирт Н. Алгоритмы и структуры данных. - М.: Мир, 1989. - 360c.
6.Гудман С., Хидитниеми С. Введение в разработку и анализ алгоритмов. - М.:
Мир, 1981. - 368с.
7.Седжвик Р. Фундаментальные алгоритмы на С++. Т 1-4. Анализ/Структуры данных/Сортировка/Поиск. - СПб.: ООО "ДиаСофтЮП", 2002. - 688 с.
8.Седжвик Р. Фундаментальные алгоритмы на С++. Т 5. Алгоритмы на графах. - СПб.: ООО "ДиаСофтЮП", 2002. - 496 с.
ВАРІАНТИ ІНДИВІДУАЛЬНИХ ЗАВДАНЬ
Варіант А) Програмно реалiзувати:
1)процедуру вставляння нового елемента у 2-3 дерево;
2)процедуру видалення з 2-3 дерева;
3)процедуру пошуку елемента у 2-3 деревi;
Варіант 1 + Варіант А
п.1) Нарисувати 2-3 дерево, що отримується послідовним введенням наступних елементів: 4, 6,13,19,20,34,29,100,130,8,15
п.2) Показати результат видалення елементів 8, 130, 13, 34 із побудованого у п.1 2-3 дерева.
Варіант 2 + Варіант А
п.1) Нарисувати 2-3 дерево, що отримується послідовним введенням наступних елементів: 47,5,24,100,36,98,5,29,45,17,10,8
п.2) Показати результат видалення елементів 100, 24, 98, 10 із побудованого у п.1 2-3 дерева.
Варіант 3 + Варіант А
п.1) Нарисувати 2-3 дерево, що отримується послідовним введенням наступних елементів: 6,25,3,17,100,58,54,50,1,30,26
п.2) Показати результат видалення елементів 26,100,17,3 із побудованого у п.1 2-3 дерева.
Варіант 4 + Варіант А
п.1) Нарисувати 2-3 дерево, що отримується послідовним введенням наступних елементів: 7,9,10,2,20,15,50,120,54,63,23
п.2) Показати результат видалення елементів 20, 120, 23, 10 із побудованого у п.1 2-3 дерева.
Варіант 5 + Варіант А
п.1) Нарисувати 2-3 дерево, що отримується послідовним введенням наступних елементів: 8,7,10,2,20,30,89,26,14,15,100,200,300
п.2) Показати результат видалення елементів 300, 30, 20, 14 із побудованого у п.1 2-3 дерева.
Варіант 6 + Варіант А
п.1) Нарисувати 2-3 дерево, що отримується послідовним введенням наступних елементів: 13,19,20,34,29,100, 130,8,15,4,6,9
п.2) Показати результат видалення елементів 8, 100, 13, 34 із побудованого у п.1 2-3 дерева.
Варіант 7 + Варіант А
п.1) Нарисувати 2-3 дерево, що отримується послідовним введенням наступних елементів: 9,3,6,1,5,7,8,40,12,24,89,74,32
п.2) Показати результат видалення елементів 8, 12, 24, 74 із побудованого у п.1 2-3 дерева.
Варіант 8 + Варіант А
п.1) Побудувати 2-3 дерево, що отримується послідовним введенням наступних елементів: 20,34,29,100,4, 6,13,19,130,8,15
п.2) Показати результат видалення елементів 8, 130, 13, 20 із побудованого у п.1 2-3 дерева.
Варіант 9 + Варіант А
п.1) Нарисувати 2-3 дерево, що отримується послідовним введенням наступних елементів: 9,2,4,56,20,78,7,45,100,21,23,89
п.2) Показати результат видалення елементів 23, 2, 20, 9 із побудованого у п.1 2-3 дерева.
Варіант 10 + Варіант А
п.1) Нарисувати 2-3 дерево, що отримується послідовним введенням наступних елементів: 4, 6,120,8,15,13,19,20,34,29,100
п.2) Показати результат видалення елементів 4, 6, 8, 34 із побудованого у п.1 2-3 дерева.
Варіант 11 + Варіант А
п.1) Нарисувати 2-3 дерево, що отримується послідовним введенням наступних елементів: 17,5,24,100,36,98,5,19,45,18,10,8
п.2) Показати результат видалення елементів 19,17, 8, 5 із побудованого у п.1 2-3 дерева.
Варіант 12 + Варіант А
п.1) Нарисувати 2-3 дерево, що отримується послідовним введенням наступних елементів: 4,15,25,200,36,98,5,29,45,17,10,8
п.2) Показати результат видалення елементів 8, 130, 13, 34 із побудованого у п.1 2-3 дерева.
Варіант 13 + Варіант А
п.1) Нарисувати 2-3 дерево, що отримується послідовним введенням наступних елементів: 7,19,120,12,20,15,50,100,54,63,23
п.2) Показати результат видалення елементів 7, 12, 15, 20 із побудованого у п.1 2-3 дерева.
Варіант 14 + Варіант А
п.1) Нарисувати 2-3 дерево, що отримується послідовним введенням наступних елементів: 200,300,8,17,100,2,20,30,89,26,14,15,10
п.2) Показати результат видалення елементів 15, 14, 10, 8 із побудованого у п.1 2-3 дерева.
Варіант 15 + Варіант А
п.1) Нарисувати 2-3 дерево, що отримується послідовним введенням наступних елементів: 20,34,29,100, 4, 6,13,19,130,8,15
п.2) Показати результат видалення елементів 8, 130, 13, 34 із побудованого у п.1 2-3 дерева.
Варіант Б) Програмно реалiзувати:
1) процедуру вставляння нового елемента у 2-3-4 дерево;
2)процедуру видалення з 2-3-4 дерева;
3)процедуру пошуку елемента у 2-3-4 деревi.
Варіант 16 + Варіант Б
п.1) Нарисувати 2-3-4 дерево, що отримується послідовним введенням наступних елементів: 4, 6,13,7,19,20,34,28,29,100,130,140,8,15
п.2) Показати результат видалення елементів 8, 130, 13, 34 із побудованого у п.1 2-3-4 дерева.
Варіант 17 + Варіант Б
п.1) Нарисувати 2-3-4 дерево, що отримується послідовним введенням наступних елементів: 47,5,24,26,100,36,98,50,55,5,29,45,17,10,8
п.2) Показати результат видалення елементів 100, 24, 98, 10 із побудованого у п.1 2-3-4 дерева.
Варіант 18 + Варіант Б
п.1) Нарисувати 2-3-4 дерево, що отримується послідовним введенням наступних елементів: 6,25,3,17,100,58,54,50,1,30,26,28,120,130
п.2) Показати результат видалення елементів 26,100,17,3 із побудованого у п.1 2-3-4 дерева.
Варіант 19 + Варіант Б
п.1) Нарисувати 2-3-4 дерево, що отримується послідовним введенням наступних елементів: 7,9,10,2,20,15,50,120,54,63,23,130,20
п.2) Показати результат видалення елементів 20, 120, 23, 10 із побудованого у п.1 2-3-4 дерева.
Варіант 20 + Варіант Б
п.1) Нарисувати 2-3-4 дерево, що отримується послідовним введенням наступних елементів: 8,7,10,2,20,30,89,26,14,15,100,200,300,35,40,45
п.2) Показати результат видалення елементів 300, 30, 20, 14 із побудованого у п.1 2-3-4 дерева.
Варіант 21 + Варіант Б
п.1) Нарисувати 2-3-4 дерево, що отримується послідовним введенням наступних елементів: 13,19,20,34,29,100, 130,8,15,4,6,134,10,25
п.2) Показати результат видалення елементів 8, 100, 13, 34 із побудованого у п.1 2-3-4 дерева.
Варіант 22 + Варіант Б
п.1) Нарисувати 2-3-4 дерево, що отримується послідовним введенням наступних елементів: 9,3,6,1,5,7,8,40,12,24,89,74,32,10,15,140
п.2) Показати результат видалення елементів 8, 12, 24, 74 із побудованого у п.1 2-3-4 дерева.
Варіант 23 + Варіант Б
п.1) Побудувати 2-3-4 дерево, що отримується послідовним введенням наступних елементів: 20,34,29,100,4, 6,13,19,130,8,15,120,115,17
п.2) Показати результат видалення елементів 8, 130, 13, 20 із побудованого у п.1 2-3-4 дерева.
Варіант 24 + Варіант Б
п.1) Нарисувати 2-3-4 дерево, що отримується послідовним введенням наступних елементів: 9,2,4,56,20,78,7,45,100,21,23,89,90,75,5
п.2) Показати результат видалення елементів 23, 2, 20, 9 із побудованого у п.1 2-3-4 дерева.
Варіант 25 + Варіант Б
п.1) Нарисувати 2-3-4 дерево, що отримується послідовним введенням наступних елементів: 4, 6,120,8,15,13,19,20,34,29,100,130,125
п.2) Показати результат видалення елементів 4, 6, 8, 34 із побудованого у п.1 2-3-4 дерева.
Варіант 26 + Варіант Б
п.1) Нарисувати 2-3-4 дерево, що отримується послідовним введенням наступних елементів: 17,5,24,100,36,98,5,19,45,18,10,8,28,25
п.2) Показати результат видалення елементів 19,17, 8, 5 із побудованого у п.1 2-3-4 дерева.
Варіант 27 + Варіант Б
п.1) Нарисувати 2-3-4 дерево, що отримується послідовним введенням наступних елементів: 4,15,25,200,36,98,5,29,45,17,10, Б
п.2) Показати результат видалення елементів 8, 130, 13, 34 із побудованого у п.1 2-3-4 дерева.
Варіант 28 + Варіант Б
п.1) Нарисувати 2-3-4 дерево, що отримується послідовним введенням наступних елементів: 7,19,120,12,20,15,50,100,54,63,23
п.2) Показати результат видалення елементів 7, 12, 15, 20 із побудованого у п.1 2-3-4 дерева.
Варіант 29 + Варіант Б
п.1) Нарисувати 2-3 дерево, що отримується послідовним введенням наступних елементів: 200,300,8,17,100,2,20,30,89,26,14,15,10
п.2) Показати результат видалення елементів 15, 14, 10, 8 із побудованого у п.1 2-3-4 дерева.
Варіант 30 + Варіант Б
п.1) Нарисувати 2-3-4 дерево, що отримується послідовним введенням наступних елементів: 20,34,29,100, 4, 6,13,19,130,8,15
п.2) Показати результат видалення елементів 8, 130, 13, 34 із побудованого у п.1 2-3-4 дерева.
НАВЧАЛЬНЕ ВИДАННЯ
СТВОРЕННЯ I ВЕДЕННЯ 2-3 та 2-3-4-ДЕРЕВ
МЕТОДИЧНІ ВКАЗІВКИ
до лабораторної роботи № 9 з курсу «Алгоритми і структури даних»
для студентів базового напрямку 6.050101 «Комп’ютерні науки»
Укладачі |
Керницький Андрій Богданович, |
|
Денисюк Павло Юрійович, |
|
Мельник Михайло Романович |
Редактор та комп’ютерне верстання Керницький Андрій Богданович,
Денисюк Павло Юрійович
